1

私はあらゆる種類のクワインの問題を経験しましたが、私の仕事はクワインの問題をなしmain()で取得することであり、ループも禁止されています。

ループがなければ簡単ですが、ループがないと書き方がわかりませんmain()。誰かが私を助けたり、リンクを提供したりできますか?

4

3 に答える 3

3

関数なしで (独立していない) C プログラムを作成することはできませんmain()。したがって、 a なしで C で quine を作成するmain()ことは、通常の意味では不可能です。

つまり、クワインの定義方法によっては、コンパイルに失敗するソース ファイルを作成できる可能性がありますが、(特定の特定のコンパイラでの) コンパイル エラーはソース ファイルの内容です。

于 2011-02-21T10:23:56.617 に答える
1

まず第一に、コンパイラは常に関数から実行を開始するため、関数なしでプログラムを作成することは不可能mainです。関数リンカがなければ、データセグメントの開始を認識しませんmain()main

ええ、でもプリプロセッサでいくつかのトリックをいじることはできますが、これは良い方法ではありません。

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

これはあなたを助けるかもしれません。

こちらもご覧ください:

C プログラムに main() は必要ですか?

于 2011-02-21T10:50:44.240 に答える
0
#include <stdio.h>

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

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

main() 宣言がありますが、定義はありません。

于 2011-02-21T10:40:12.237 に答える