1

重複の可能性:
main() は C/C++ で何を返す必要がありますか?

これはかなり基本的な質問だと思います。

私はプログラミングを始めて 1 年になりますが、ある友人から驚くべき質問を受けました。

C++ で「int main()」で始まるプログラムは、「return 0;」でも完全にコンパイルされるようです。削除され、他の return ステートメントに置き換えられません。また、return ステートメントがまったくない場合でも、プログラムは「プロセスが 0 を返しました」と表示します。

これには説明がありますか?私の質問がばかげている場合は申し訳ありません!

4

2 に答える 2

5

§3.6.1/5:

return ステートメントにmainは、メイン関数を離れ (自動保存期間を持つオブジェクトをすべて破棄する) exit、戻り値を引数として呼び出すという効果があります。制御が return ステートメントに遭遇せずに main の最後に達した場合、その効果は次のとおりです。 return 0;

于 2010-07-31T21:29:23.573 に答える
1

What should main() return in C/C++?の受け入れられた回答から

また、C++ では、int main() を戻り値なしで残すことができ、その時点でデフォルトで 0 を返すことにも注意してください。これは、C99 プログラムにも当てはまります。return 0 を省略すべきかどうかは議論の余地があります。

于 2010-07-31T21:28:00.907 に答える