C の絶対開始として Main() が使用されるという誤解
一般的な考えに反して、セクション $3.6.1/ の C 標準1 では、「プログラムには、プログラムの開始点として指定される main と呼ばれるグローバル関数が含まれなければならない」と記載されていますが、これは、コードが存在しないことを意味するものではありません。 main() の実行前に実行されます。代わりに、プログラム内の特定のポイントとして「開始」の概念が確立されます。
この違いを説明するために、次のコード スニペットを考えてみましょう。
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_ret を実行します。この実行順序にもかかわらず、user_main() は、標準で定義されているプログラムの真の「開始」とは見なされません。
C 標準での「開始」の定義
コード コンプライアンスへの影響
この解釈に照らして、指定されたコード スニペットは、次のコードに完全に準拠しています。 C スタンダード。 user_main() は main() より前に実行されますが、プログラムの「開始」は main() が呼び出された時点のままです。結論
そう思われるかもしれませんが、 main() が C プログラムの絶対的な開始であることは直感的ですが、標準では異なる定義が採用されています。これは、その後の実行と仕様を目的として、プログラムが「開始」される指定ポイントとして main() を確立します。以上が`main()` は本当に C プログラムの絶対的な始まりを示しているのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。