是否可以编写一个使用“序列生成函数”打印自己的源代码的程序?
我所说的序列生成函数只是一个返回特定间隔之外的值的函数(即可打印的 ascii 字符(32-126))。现在的重点是,这个生成的序列应该是程序自己的源代码。如您所见,实现一个返回任意序列的函数确实很简单,但是由于返回的序列必须包含函数本身的实现,所以这是一项非常重要的任务。
这就是这样一个程序(及其相应的输出)的样子
#include <stdio.h>
int fun(int x) {
ins1;
ins2;
ins3;
.
.
.
return y;
}
int main(void) {
int i;
for ( i=0; i<size of the program; i++ ) {
printf("%c", fun(i));
}
return 0;
}
我个人认为这是不可能的,但由于我对潜在问题不太了解,所以我在这里发表了我的想法。我真的很期待听到一些意见!