📄 +
字号:
历史上最好的C语言程序:
1983年,在ACM图林奖颁奖大会上,杰出的计算机科学家、UNIX的鼻祖、C语言的创始人之一,图林大奖得主,Ken Thompson,上台的第一句话便是:“我是一个程序员,在我的1040表上,我自豪地写上了我的职业。作为一个程序员,我的工作就是写程序。今天我将向大家提供一个我曾经写过的最精练的程序。”这个程序是一个自已复制自已的C语言程序,如下:
#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);
}
这个程序第一版和它“生”下的第二版式本在变量s的声明上略有不同,但在功能上完全一致,第二个版本与其后代则在形式和功能上完全一致。这个程序可能是第一个用C语言制造的Trojan horse。该程序由UNIX创始人,C语言作者之一的Ken Thompson书写,并在图林大奖向世人展示,应是无人能敌。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -