如何编写没有main()的quine程序

时间:2011-02-21 10:20:42

标签: c quine

我经历了各种各样的问题,但我的任务是在没有main()的情况下得到一个quine问题,并且也禁止循环。

没有循环,很容易,但我无法弄清楚如何在没有main()的情况下编写一个。有人可以帮我或给我一个链接吗?

3 个答案:

答案 0 :(得分:3)

如果没有main()功能,则无法创建(非独立式)C程序。因此,在通常意义上,在没有main()的情况下在C中创建一个quine是不可能的。

也就是说,根据你如何定义一个quine,你可能能够构造一个无法编译的源文件,但编译错误(在某个特定的编译器上)是源文件的内容。 / p>

答案 1 :(得分:1)

第一件事是无法在没有main函数的情况下编写程序,因为编译器总是从main()函数开始执行,没有main函数链接器不会知道数据段的开始

是的,但是使用预处理器的一些技巧你可以做到,但这不是一个很好的方法。

http://www.gohacking.com/2008/03/c-program-without-main-function.html

这可能会对你有帮助。

看看这里:

Is a main() required for a C program?

答案 2 :(得分:0)

#include <stdio.h>

int
foo(void) {
        printf("pong!\n");
        return 0;
}

int main() __attribute__((weak, alias("foo")));

有main()声明,但没有定义。