C++ の場合、3.6.1 メイン関数
(3.6.1/5) main の return ステートメントには、main 関数を終了し (自動保存期間を持つオブジェクトを破棄する)、戻り値を引数として exit を呼び出す効果があります。制御が return ステートメントに遭遇せずに main の最後に達した場合、結果は return 0 を実行することになります。
return 0 なしで C99 で次のことを行うことはできますか?
int main() { }
はい、C99}
の時点で、 main の最後で に到達すると、 の戻り値の型がmain
と互換性がある場合は 0 が返されますint
。
5.1.2.2.3 プログラムの終了
関数の戻り値の型が
main
int と互換性のある型である場合、関数への最初の呼び出しからの戻りは、関数によって返された値を引数として関数main
を呼び出すことと同じです。11)関数を終了するに到達すると、値 0 が返されます。戻り値の型が と互換性がない場合、ホスト環境に返される終了ステータスは規定されていません。exit
main
}
main
int
はい、C99 標準は次のように述べています (§5.1.2.2.3):
}
関数を終了するに到達するとmain
、値 0 が返されます。