6个变态的C语言Hello World程序

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

  1. 输出Hello, World
  2. 混乱C语言的源代码

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

hello1.c

 

hello2.c 

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;}

(全文完)

 

以上文章来源网址:http://coolshell.cn/articles/914.html皓哥的博客,久仰的一位大侠,曾经看过其写的《跟我一起写Makefile》,很强大

 

 

最后表示一下,世界之窗浏览器真是TMD  very烂,抽空一定把他给卸了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值