白巴的临时空间

记录我的一些生活写照、无聊的牢骚、内心世界的活动…… 登陆
Contact me!

白巴,于2007年8月22日创建此Blog,总共被访问了205809次,今日访问302次,期间在5个分类中发表的90篇文章被评论了194次。

六个变态的C语言写的Hello World

下面的六个程序片段主要完成这些事情:

1、输出 Hello World;
2、混乱 C 语言的源代码。

下面的所有程序都可以在 GCC 下编译通过,只有最后一个需要动用 C++ 的编译器 G++ 才能编程通过

hello1.c

C 代码
  1. #define _________ }  
  2. #define ________ putchar  
  3. #define _______ main  
  4. #define _(a) ________(a);  
  5. #define ______ _______(){  
  6. #define __ ______ _(0x48)_(0x65)_(0x6C)_(0x6C)  
  7. #define ___ _(0x6F)_(0x2C)_(0x20)_(0x77)_(0x6F)  
  8. #define ____ _(0x72)_(0x6C)_(0x64)_(0x21)  
  9. #define _____ __ ___ ____ _________  
  10. #include <stdio.h>  
  11. _____  
hello2.c
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
C 代码
  1. #include <stdio.h>  
  2. #define __(a) goto a;  
  3. #define ___(a) putchar(a);  
  4. #define _(a,b) ___(a) __(b);  
  5. main()  
  6. {  
  7.   _:__(t)a:_('r',g)b:_('$',p)  
  8.   c:_('l',f)d:_(' ',s)e:_('a',s)  
  9.   f:_('o',q)g:_('l',h)h:_('d',n)  
  10.   i:_('e',w)j:_('e',x)k:_('\n',z)  
  11.   l:_('H',l)m:_('X',i)n:_('!',k)  
  12.   o:_('z',q)p:_('q',b)q:_(',',d)  
  13.   r:_('i',l)s:_('w',v)t:_('H',j)  
  14.   u:_('a',a)v:_('o',a)w:_(')',k)  
  15.   x:_('l',c)y:_('\t',g)z:___(0x0)  
  16. }  
hello4.c
C 代码
  1. int n[]={  
  2.   0x48,0x65,0x6C,0x6C,0x6F,0x2C,0x20,  
  3.   0x77,0x6F,0x72,0x6C,0x64,0x21,0x0A,0x00  
  4. },  
  5. *m=n;  
  6. main(n){putchar  
  7.   (*m)!='\0'?main  
  8.   (m++):exit(n++);  
  9. }  
hello5.c
C 代码
  1. main(){  
  2.   int i,n[]={(((1<<1)<<(1<<1)<<(1<<  
  3.   1)<<(1<<(1>>1)))+((1<<1)<<(1<<1))), (((1  
  4.   <<1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<<(  
  5.   1<<1)<<(1<<1))+((1<<1)<<(1<<(1>>1)))+ (1  
  6.   <<(1>>1))),(((1<<1)<<(1<<1)<<(1<<1)<< (1  
  7.   <<1))-((1<<1)<<(1<<1)<<(1<<(1>>1)))- ((1  
  8.   <<1)<<(1<<(1>>1)))),(((1<<1)<<(1<<1)<<(1  
  9.   <<1)<<(1<<1))-((1<<1)<<(1<<1)<<(1<<(1>>1  
  10.   )))-((1<<1)<<(1<<(1>>1)))),(((1<<1)<< (1  
  11.   <<1)<<(1<<1)<<(1<<1))-((1<<1)<<(1<<1)<<(  
  12.   1<<(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<<  
  17.   1)<<(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)<< (1  
  20.   <<1)<<(1<<(1>>1)))+(1<<1)), (((1<<1)<< (  
  21.   1<<1)<<(1<<1)<< (1<<1))-((1<<1)<< (1<<1)  
  22.   <<(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<<(1  
  26.   >>1))),(((1<<1)<<(1<<1))+((1<<1)<< (1<<(  
  27.   1>>1))) + (1<< (1>>1)))}; for(i=(1>>1);i  
  28.   <(((1<<1) <<(1<<1))+((1 <<1)<< (1<<(1>>1  
  29.   ))) + (1<<1)); i++) printf("%c",n[i]);  
  30. }  
hello6.cpp
C++ 代码
  1. #include <stdio.h>
  2. #define _(_) putchar(_);
  3. int main(void){
  4.     int i = 0;_(
  5.     ++++++++++++++++++++++++++++
  6.     ++++++++++++++++++++++++++++
  7.     ++++++++++++++++++++++++++++
  8.     ++++++++++++++++++++++++++++
  9.     ++++++++++++++++++++++++++++
  10.     ++++i)_(++++++++++++++++++++
  11.     ++++++++++++++++++++++++++++
  12.     ++++++++++i)_(++++++++++++++
  13.     i)_(--++i)_(++++++i)_(------
  14.     ----------------------------
  15.     ----------------------------
  16.     ----------------------------
  17.     ----------------------------
  18.     ----------------i)_(--------
  19.     ----------------i)_(++++++++
  20.     ++++++++++++++++++++++++++++
  21.     ++++++++++++++++++++++++++++
  22.     ++++++++++++++++++++++++++++
  23.     ++++++++++++++++++++++++++++
  24.     ++++++++++++++++++++++++++++
  25.     ++++++++++++++++++++++++++i)
  26.     _(----------------i)_(++++++
  27.     i)_(------------i)_(--------
  28.     --------i)_(----------------
  29.     ----------------------------
  30.     ----------------------------
  31.     ----------------------------
  32.     ----------------------------
  33.     ------i)_(------------------
  34.     ----------------------------
  35.     i)return i;
  36. }

« 上一篇 | 下一篇 »

4条记录Comments

第五个第六个...真BT...
话说第五个编译后运行需要多长时间...

Post by 苏洋 on 2009-05-27 13:56:40 #1

你的sablog似乎没有引用评论的功能?...

Post by 苏洋 on 2009-05-27 15:34:18 #2

确实没有引用功能。
对源代码的改动比较大。

Post by 白巴 on 2009-05-27 17:42:08 #3

你可以访问我的网址的/blog 看我的sablog..
似乎是有引用功能的...你把它删除了?奇怪了...
看见你回复不易呢,端午快乐~

Post by 苏洋 on 2009-05-28 19:25:25 #4


发表评论

评论内容 (必填):