ホームページ > バックエンド開発 > C++ > `main()` は本当に C プログラムで最初に実行されるコードですか?

`main()` は本当に C プログラムで最初に実行されるコードですか?

Mary-Kate Olsen
リリース: 2024-12-07 05:33:15
オリジナル
915 人が閲覧しました

Is `main()` Really the First Code Executed in a C   Program?

Main() は本当に C プログラムの開始点ですか?

C 標準では、main() をプログラムの排他的な開始点として定義しています。プログラム: 「プログラムには、プログラムの開始点として指定される main と呼ばれるグローバル関数が含まれます。」

ただし、以下のコードはこの定義と矛盾しているようです:

1

2

3

4

5

6

7

8

9

10

11

12

int square(int i) { return i*i; }

int user_main()

{

    for ( int i = 0 ; i < 10 ; ++i )

           std::cout << square(i) << endl;

    return 0;

}

int main_ret= user_main();

int main()

{

        return main_ret;

}

ログイン後にコピー

驚くべきことに、このコードは、最初の実行ポイントであるはずの main() に入る前に user_main() 関数を実行します。さらに、コードはエラーや警告なしでコンパイルされます。

プログラムの「開始」の定義

「プログラムの開始」という用語を正しく解釈することが重要です。標準では、開始を、必ずしも最初のコードの実行時ではなく、プログラムが開始するとみなされる時点として定義しています。

この例では、プログラムは main() で始まりますが、これはコードが存在しないことを意味するものではありません。事前に実行します。実際には、通常、実質的なコードは main() よりも前に、特に初期化中に実行されます。

標準準拠

コードの実行順序は通常ではありませんが、コードは完全に準拠しています。標準。定義によれば、user_main() の方が先に実行されますが、プログラムの開始は main() になります。実行順序によって、プログラムの開始が main() 関数として定義されるという事実は変わりません。

したがって、指定されたコードは標準に準拠しており、開始の標準の定義が無効になることはありません。プログラムを main() として実行します。

以上が`main()` は本当に C プログラムで最初に実行されるコードですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート