posts - 297,  comments - 15,  trackbacks - 0

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

  1. 输出Hello, World
  2. 混乱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;}


from:
http://coolshell.cn/?p=914

posted on 2010-02-18 21:05 chatler 阅读(235) 评论(0)  编辑 收藏 引用 所属分类: C++_BASIS

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2010年1月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(10)

随笔分类(307)

随笔档案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感觉这个博客还是不错,虽然做的东西和我不大相关,觉得看看还是有好处的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新评论

阅读排行榜

评论排行榜