-2

C プログラムに 2 つの main() があることについて、他の質問を見ました。

CodeBlocks を使用しています

ただし、次のプログラムを検討してください。

void main()
{
    void main()
    {
        printf("hello!");
    }
    printf("World!");

}

"World!" のみを出力します。

  • 私は実際に、内部で何が起こっているかを確認するために、この種のコードを書いています。
  • 奇妙なコードを書くことで、どういうわけか(プログラムでエラーや予期しない動作が発生するため)疑問が生じますが、なぜそれらが発生したのかわかりません
  • 私が参照できるC言語への参照はありますか? 前もって感謝します。
4

4 に答える 4

9

C: プログラムに 2 つの main() 関数を含めることはできますか?

いいえ。

とにかく、投稿したコードは有効な C ではありません。C にはネスト関数はありません。

于 2013-08-12T02:56:07.293 に答える
0

はい、C で 2 つの主な機能を持つことは可能です。マクロ/定義済み関数を使用してコンパイラを台無しにすることで実行できます。これがコードスニペットです。

#include    <stdio.h>
void main()
{
    printf("Inside 1st main\n");
        func1();
}
#define main func1
void main()
{
    printf("Inside 2nd main\n");
}
  • プリプロセッサはそのままにしておいてください。そうしないと、エラーが発生します。
于 2015-02-06T11:36:54.877 に答える