長い間 return 0; を使っていましたが、アレグロを使い始めた頃からです。C++の本に出くわしてEXIT_SUCCESSについて見つけたよりも、それが定義されているstdlib.hまたはcstdlibを調べ、2行しかありません。
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
誰かが私にこれを説明できますか?私は最新の devc++ 4.9.9.2 の mingw バージョンを使用しています。
長い間 return 0; を使っていましたが、アレグロを使い始めた頃からです。C++の本に出くわしてEXIT_SUCCESSについて見つけたよりも、それが定義されているstdlib.hまたはcstdlibを調べ、2行しかありません。
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
誰かが私にこれを説明できますか?私は最新の devc++ 4.9.9.2 の mingw バージョンを使用しています。
C99 言語標準では、2 つのマクロEXIT_SUCCESS
とEXIT_FAILURE
を定義して、「関数への引数として使用できる整数定数式を使用して
exit
、それぞれホスト環境に失敗または成功の終了ステータスを返す」(§7.20/3)。
関数の説明exit
(§7.20.4.3/5) では、次のようにも述べています。
最後に、制御がホスト環境に戻されます。の値
status
が 0 または の場合、正常終了EXIT_SUCCESS
ステータスの実装定義形式が返されます。の値が である場合、ステータスの失敗した終了の実装定義形式が返されます。それ以外の場合、返されるステータスは実装定義です。status
EXIT_FAILURE
したがって、0 またはEXIT_SUCCESS
で終了すると、それは常にホスト環境にとって「正常終了」を意味します。 EXIT_FAILURE
は常に「失敗した終了」を意味する値ですが、それら以外のゼロ以外の値は移植性が保証されていません。
main
from から戻ることは、戻り値のステータスで関数を呼び出すことと同じであることに注意してくださいexit
(§5.1.2.2.3)。
EXIT_SUCCESS
およびEXIT_FAILURE
は、 で定義されている標準 C マクロstdlib.h
です。C は、これらのマクロの値を指定しません。
POSIX は である必要EXIT_SUCCESS
があります0
。(ただし、値には何も指定しませんEXIT_FAILURE
)。