#include <stdio.h>
extern const char source[];
int main()
{
printf("%s", source);
return 0;
}
asm(
".section .rodata\n"
".global source\n"
"source:\n"
".incbin \"" __FILE__ "\"\n"
".byte 0\n"
);
维基百科说 quine 没有收到任何输入,我知道,出于这个原因,从文件中读取自己的源代码的程序不算数。上面的程序只是简单地读取自己的源代码并将其打印到标准输出,但它是程序本身的一部分。传统的 quines 通常也将字符串嵌入在同一位置,如果涉及特别积极的优化器,甚至可能是整个源代码/输出。
该程序确实从文件中加载其源代码以显示它......但它在编译时这样做,所以程序仍然不接受输入。那么它是不是一个quine?