很长一段时间我都在使用 return 0;,从我开始使用 allegro 开始。比我遇到 C++ 书并找到有关 EXIT_SUCCESS 的信息,比我查看定义它的 stdlib.h 或 cstdlib 并且只有两行:
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
有人可以向我解释一下吗?我正在使用最后一个 devc++ 4.9.9.2 的 mingw 版本。
C99 语言标准定义了这两个宏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
等效于以exit
返回值的状态调用函数(第 5.1.2.2.3 节)。
EXIT_SUCCESS
并且EXIT_FAILURE
是在stdlib.h
. C 没有指定这些宏的值。
POSIX 要求EXIT_SUCCESS
是0
. (但没有指定任何EXIT_FAILURE
价值)。