win-tc 1。8下编译通过(把所有的代码放在一行),运行结果就是原程式,拷贝到编译器同样还可以运行。
其它编译器加上头文件。
char*s="main(){char*t;t=s;printf(\"char*s=\\\"\");while(*s){if (*s==92||*s==34)p rintf(\"\\\\\");printf(\"%c\",*s++);}printf(\"\\\";\");while(*t)printf(\"%c\",*t ++);}";main(){char*t;t=s;printf("char*s=\"");while(*s){if (*s==92||*s==34)printf ("\\");printf("%c",*s++);}printf("\";");while(*t)printf("%c",*t++);}
其实写写这种代码也很有意思的,这个是我以前写的,最初的版本容易看懂。
不知道有人感兴趣吗?交流交流。
如果加上精巧的计算,可以加密原文,每一次的运行结果可以有不同的图案变化,而且结果都是可以再次运行,也就是一个完整的程序。