Вы должны использовать EXIT_SUCCESS, когда программа завершилась правильно, и EXIT_FAILURE, если это не так. EXIT_SUCCESS равен нулю, а ноль переносим для любой операционной системы, в то время как EXIT_FAILURE изменяется, например, с UNIX на Windows. Эти константы определены в заголовке stdlib.h
.
#include <stdlib.h>
int main()
{
int toret = EXIT_SUCCESS;
if ( !( /* do something useful here */ ) ) {
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)
У также должны быть коды выхода для правильной работы.