C++ では、int main()
戻り値なしでそのままにしておくことができ、その時点でデフォルトで 0 が返されます。
5.1.2.2.3 プログラムの終了
1 main 関数の戻り値の型が int と互換性のある型である場合、main 関数の最初の呼び出しからの戻りは、main 関数によって返された値を引数として exit 関数を呼び出すことと同等です。11) } に到達します。 main 関数を終了する は値 0 を返します。戻り値の型が int と互換性がない場合、ホスト環境に返される終了ステータスは規定されていません。
しかし、 からの戻りにはEXIT_SUCCESS
またはを使用した方がよいはずです 。EXIT_FAILURE
main()
int を返している場合でも、一部の OS (Windows) は戻り値を 1 バイト (0-255) に切り捨てます。おそらく他のほとんどのオペレーティング システムと同様に、Unix も同じことを行います。
GNU ライブラリからの引用
一部の非 POSIX システムでは、終了ステータス値に異なる規則を使用しています。移植性を高めるために、マクロ EXIT_SUCCESS および EXIT_FAILURE を、それぞれ成功および失敗の従来のステータス値に使用できます。これらはファイル stdlib.h で宣言されています。
— マクロ: int EXIT_SUCCESS このマクロを exit 関数と一緒に使用して、プログラムの正常終了を示すことができます。
POSIX システムでは、このマクロの値は 0 です。他のシステムでは、値は他の (定数でない可能性がある) 整数式である可能性があります。
— マクロ: int EXIT_FAILURE このマクロを exit 関数と共に使用して、一般的な意味でのプログラムの完了の失敗を示すことができます。
POSIX システムでは、このマクロの値は 1 です。他のシステムでは、値は他の (定数でない可能性がある) 整数式である可能性があります。その他のゼロ以外のステータス値も失敗を示します。特定のプログラムは、さまざまな非ゼロのステータス値を使用して、特定の種類の「失敗」を示します。たとえば、diff はステータス値 1 を使用してファイルが異なることを意味し、2 以上の場合はファイルを開くのに問題があったことを意味します。