假设您有一个 C 程序,它打印其源代码的“混淆”或其他修饰的版本。例如,假设空格或变量名称存在差异。
那么那个程序就不会是一个 quine,因为根据定义,一个 quine 是一个打印自身的程序,而“它自己”是指完全相同的字节序列。但是该程序的输出,一旦被编译,将打印与原始程序相同的内容(因为它只是一个装饰变体),即它本身。所以输出是一个quine。
这有时会简化编写 quine 的过程 - 只需编写一个“近乎 quine”,这可能无法完全正确地获得格式,运行一次,输出就是您的实际 quine。
这一切都假设C 中有一个 quine 。x86 机器代码中的quine必须输出的不是它的 C 源代码,而是构成 .exe 文件的相同字节序列。
我不确定您所说的“实际代码”与“混淆代码”是什么意思,但是要测试某事物是否是 quine,您必须确定它应该是哪种语言。 也许通过决定你可以回答你自己的问题——你只是想要一个 C 语言的 quine,还是一个与你的混淆器有关的 quine?