历史上最好的C语言
Written on 12 16, 2007 // 技术交流.技术交流, 文摘, 碎月日记, 街舞, 音乐
前言:1983年,在ACM图林奖颁奖大会上,杰出的计算机科学家、UNIX的鼻祖、C语言的创始人之一,图林大奖得主,Ken Thompson,上台的第一句话便是:“我是一个程序员,在我的1040表上,我自豪地写上了我的职业。作为一个程序员,我的工作就是写程序。今天我将向大家提供一个我曾经写过的最精练的程序。”
突然想要重新搬起C语言,好好揣摩揣摩,实在人的记忆是有限的呀,时间长了忘了也难免
于是想要逛逛论坛,找些学习资料,无意中就发现了这段号称“历史上最好的C语言”。拿来坐看右看,怎么也看不出端倪,无奈只能放在VC++6.0上编译了一番看看到底好在哪里!
看完,兴奋不已。这段程序简单至极,却一点也不简单。:)
它经典的并不是这段程序有多难,而是写这段程序的想象力。
这世上没有做不到的,只有想不到的
下面请看这段代码:
#include <stdio.h>
char s[] = {
‘\t’,
‘0′,
‘\n’,
‘}’,
‘;’,
‘\n’,
‘\n’,
‘m’,
‘a’,
‘i’,
‘n’,
‘(’,
‘)’,
‘\n’,
‘{’,
‘\n’,
‘\t’,
‘i’,
‘n’,
‘t’,
‘ ‘,
‘i’,
‘;’,
‘\n’,
‘\n’,
‘\t’,
‘p’,
‘r’,
‘i’,
‘n’,
‘t’,
‘f’,
‘(’,
‘\”‘,
‘c’,
‘h’,
‘a’,
‘r’,
‘ ‘,
‘\\’,
‘t’,
’s’,
‘[',
']‘,
‘ ‘,
‘=’,
‘ ‘,
‘{’,
‘\\’,
‘n’,
‘\”‘,
‘)’,
‘;’,
‘\n’,
‘\t’,
‘f’,
‘o’,
‘r’,
‘(’,
‘i’,
‘=’,
‘0′,
‘;’,
’s’,
‘[',
'i',
']‘,
‘;’,
‘i’,
‘+’,
‘+’,
‘)’,
‘\n’,
‘\t’,
‘\t’,
‘p’,
‘r’,
‘i’,
‘n’,
‘t’,
‘f’,
‘(’,
‘\”‘,
‘\\’,
‘r’,
‘%’,
‘d’,
‘,’,
‘\\’,
‘n’,
‘\”‘,
‘,’,
’s’,
‘[',
'i',
']‘,
‘)’,
‘;’,
‘\n’,
‘\t’,
‘p’,
‘r’,
‘i’,
‘n’,
‘t’,
‘f’,
‘(’,
‘\”‘,
‘%’,
’s’,
‘\”‘,
‘,’,
’s’,
‘)’,
‘;’,
‘\n’,
‘}’,
0
};
main() {
int i;
printf(”char \ts[] = {\n”);
for(i=0;s[i];i++)
printf(”\r%d,\n”,s[i]);
printf(”%s”,s);
}
看完后有什么感想呢?
这个程序是一个自已复制自已的C语言程序
我是退化了,没能一眼看出来。不过想高手应该看得出来了。
后记:这个程序第一版和它“生”下的第二版式本在变量s的声明上略有不同,但在功能上完全一致,第二个版本与其后代则在形式和功能上完全一致。这个程序可能是第一个用C语言制造的Trojan horse。该程序由UNIX创始人,C语言作者之一的Ken Thompson书写,并在图林大奖向世人展示,应是无人能敌。
Popularity: 18% [?]
Hello!I'm Wenhui,I'm a Computer Science and Technology worker.We can communicate with each other on Computer and Around Technologies.









