当程序正确结束时应使用 EXIT_SUCCESS,而当程序没有正确结束时应使用 EXIT_FAILURE。EXIT_SUCCESS 是零,而零在任何操作系统上都是可移植的,而 EXIT_FAILURE 从 UNIX 到 Windows 等平台上都有所不同。这些常量在 stdlib.h
头文件中定义。
#include <stdlib.h>
int main()
{
int toret = EXIT_SUCCESS;
if ( !( ) ) {
toret = EXIT_FAILURE;
}
return toret;
}
当程序还是为控制台编写时,程序的返回代码更有用。如今,这种情况已经很少见了,除非你在一个非常专业的环境中工作(即使是这样,随着可用的工作流程工具的增加,这种情况也在改变)。
正如@Benoit所说,退出代码告诉操作系统操作是否成功。如果退出代码表示失败,那么你可以打破批处理程序的流程,因为它不太可能成功。
例如,编译器可以在编译成功时具有零的退出代码,而在编译失败时具有任何其他值。在Windows中,可以通过操作系统变量“errorlevel”访问此代码:
gcc helloworld.cpp -ohelloworld.exe
goto answer%errorlevel%
:answer0
copy helloworld.exe c:\users\username\Desktop
echo Program installed
goto end
:answer1
echo There were errors. Check your source code.
:end
echo Now exiting...
这个Windows批处理文件会在编译成功后将helloworld.exe“安装”到桌面上。由于您可以通过双击触发批处理文件的执行,因此这可以使您避免触及命令行进行编译。
当然,需要考虑到集成环境更好地管理它(如果退出代码不存在,则无法正常工作)。还要注意,在这个领域中,最好使用make。
https://en.wikipedia.org/wiki/Make_(software)
Make 运行正确还需要退出代码的支持。