我是靠谱客的博主 合适星月,最近开发中收集的这篇文章主要介绍一个难题: 怎样写一个输出自己源代码的程序?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 一个难题: 怎样写一个输出自己源代码的程序?
要写一个可移植的自我再生的程序是件很困难的事, 部分原因是因为引用和字符集的难度。
这里是个经典的例子(应该以一行表示的, 虽然第一次执行后它后自我修复):
char*s="char*s=%c%s%c;main(){printf(s,34,s,34);}";

main(){printf(s,34,s,34);}

这段程序有一些依赖, 忽略了#include <stdio.h>, 还假设了双引号" 的值为34, 和ASCII 中的值一样。
这里还有一个有James Hu 发布的改进版:
#define  q(k)main(){return!puts(#k"nq("#k")");}
q(#define  q(k)main(){return!puts(#k"nq("#k")");})

最后

以上就是合适星月为你收集整理的一个难题: 怎样写一个输出自己源代码的程序?的全部内容,希望文章能够帮你解决一个难题: 怎样写一个输出自己源代码的程序?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部