6个变态的C语言Hello World程序
时间:2010-09-26 来源:zrx171407518
下面的六个程序片段主要完成这些事情:
- 输出Hello, World
- 混乱C语言的源代码
下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。
hello1.c
01 | #define _________ } |
02 | #define ________ putchar |
03 | #define _______ main |
04 | #define _(a) ________(a); |
05 | #define ______ _______(){ |
06 | #define __ ______ _(0x48)_(0x65)_(0x6C)_(0x6C) |
07 | #define ___ _(0x6F)_(0x2C)_(0x20)_(0x77)_(0x6F) |
08 | #define ____ _(0x72)_(0x6C)_(0x64)_(0x21) |
09 | #define _____ __ ___ ____ _________ |
10 | #include<stdio.h> |
11 | _____ |
hello2.c
1 | #include<stdio.h> |
2 | main(){ |
3 | int x=0,y[14],*z=&y;*(z++)=0x48;*(z++)=y[x++]+0x1D; |
4 | *(z++)=y[x++]+0x07;*(z++)=y[x++]+0x00;*(z++)=y[x++]+0x03; |
5 | *(z++)=y[x++]-0x43;*(z++)=y[x++]-0x0C;*(z++)=y[x++]+0x57; |
6 | *(z++)=y[x++]-0x08;*(z++)=y[x++]+0x03;*(z++)=y[x++]-0x06; |
7 | *(z++)=y[x++]-0x08;*(z++)=y[x++]-0x43;*(z++)=y[x]-0x21; |
8 | x=*(--z);while(y[x]!=NULL)putchar(y[x++]); |
9 | } |
hello3.c
01 | #include<stdio.h> |
02 | #define __(a) goto a; |
03 | #define ___(a) putchar(a); |
04 | #define _(a,b) ___(a) __(b); |
05 | main() |
06 | { _:__(t)a:_('r',g)b:_('$',p) |
07 | c:_('l',f)d:_(' ',s)e:_('a',s) |
08 | f:_('o',q)g:_('l',h)h:_('d',n) |
09 | i:_('e',w)j:_('e',x)k:_('\n',z) |
10 | l:_('H',l)m:_('X',i)n:_('!',k) |
11 | o:_('z',q)p:_('q',b)q:_(',',d) |
12 | r:_('i',l)s:_('w',v)t:_('H',j) |
13 | u:_('a',a)v:_('o',a)w:_(')',k) |
14 | x:_('l',c)y:_('\t',g)z:___(0x0)} |
hello4.c
1 | int n[]={0x48, |
2 | 0x65,0x6C,0x6C, |
3 | 0x6F,0x2C,0x20, |
4 | 0x77,0x6F,0x72, |
5 | 0x6C,0x64,0x21, |
6 | 0x0A,0x00},*m=n; |
7 | main(n){putchar |
8 | (*m)!='\0'?main |
9 | (m++):exit(n++);} |
hello5.c
01 | main(){int i,n[]={(((1<<1)<<(1<<1)<<(1<< |
02 | 1)<<(1<<(1>>1)))+((1<<1)<<(1<<1))), (((1 |
03 | <<1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<<( |
04 | 1<<1)<<(1<<1))+((1<<1)<<(1<<(1>>1)))+ (1 |
05 | <<(1>>1))),(((1<<1)<<(1<<1)<<(1<<1)<< (1 |
06 | <<1))-((1<<1)<<(1<<1)<<(1<<(1>>1)))- ((1 |
07 | <<1)<<(1<<(1>>1)))),(((1<<1)<<(1<<1)<<(1 |
08 | <<1)<<(1<<1))-((1<<1)<<(1<<1)<<(1<<(1>>1 |
09 | )))-((1<<1)<<(1<<(1>>1)))),(((1<<1)<< (1 |
10 | <<1)<<(1<<1)<<(1<<1))-((1<<1)<<(1<<1)<<( |
11 | 1<<(1>>1)))-(1<<(1>>1))),(((1<<1)<<(1<<1 |
12 | )<<(1<<1))+((1<<1)<<(1<<1)<<(1<<(1>>1))) |
13 | -((1<<1)<<(1<<(1>>1)))),((1<<1)<< (1<<1) |
14 | <<(1<<1)),(((1<<1)<<(1<<1)<<(1<<1)<<(1<< |
15 | 1))-((1<<1)<<(1<<1))-(1<<(1>>1))),(((1<< |
16 | 1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<< (1 |
17 | <<1)<<(1<<(1>>1)))-(1<<(1>>1))), (((1<<1 |
18 | )<<(1<<1)<<(1<<1)<<(1<<1))- ((1<<1)<< (1 |
19 | <<1)<<(1<<(1>>1)))+(1<<1)), (((1<<1)<< ( |
20 | 1<<1)<<(1<<1)<< (1<<1))-((1<<1)<< (1<<1) |
21 | <<(1<<(1>>1)))-((1<<1) <<(1<< (1>>1)))), |
22 | (((1<<1)<< (1<<1)<<(1<<1)<< (1<<1))- ((1 |
23 | <<1)<<(1<<1)<<(1<<1))+((1<<1)<< (1<<(1>> |
24 | 1)))), (((1<<1)<<(1<<1) <<(1<<1))+(1<<(1 |
25 | >>1))),(((1<<1)<<(1<<1))+((1<<1)<< (1<<( |
26 | 1>>1))) + (1<< (1>>1)))}; for(i=(1>>1);i |
27 | <(((1<<1) <<(1<<1))+((1 <<1)<< (1<<(1>>1 |
28 | ))) + (1<<1)); i++) printf("%c",n[i]); } |
hello6.cpp
下面的程序只能由C++的编译器编译(比如:g++)
01 | #include <stdio.h> |
02 | #define _(_) putchar(_); |
03 | int main(void){int i = 0;_( |
04 | ++++++++++++++++++++++++++++ |
05 | ++++++++++++++++++++++++++++ |
06 | ++++++++++++++++++++++++++++ |
07 | ++++++++++++++++++++++++++++ |
08 | ++++++++++++++++++++++++++++ |
09 | ++++i)_(++++++++++++++++++++ |
10 | ++++++++++++++++++++++++++++ |
11 | ++++++++++i)_(++++++++++++++ |
12 | i)_(--++i)_(++++++i)_(------ |
13 | ---------------------------- |
14 | ---------------------------- |
15 | ---------------------------- |
16 | ---------------------------- |
17 | ----------------i)_(-------- |
18 | ----------------i)_(++++++++ |
19 | ++++++++++++++++++++++++++++ |
20 | ++++++++++++++++++++++++++++ |
21 | ++++++++++++++++++++++++++++ |
22 | ++++++++++++++++++++++++++++ |
23 | ++++++++++++++++++++++++++++ |
24 | ++++++++++++++++++++++++++i) |
25 | _(----------------i)_(++++++ |
26 | i)_(------------i)_(-------- |
27 | --------i)_(---------------- |
28 | ---------------------------- |
29 | ---------------------------- |
30 | ---------------------------- |
31 | ---------------------------- |
32 | ------i)_(------------------ |
33 | ---------------------------- |
34 | i)return i;} |
(全文完)
相关阅读 更多 +