Вопрос немного неясен.Значение, которое вы возвращаете из main
, является в точности значением, которое вы передаете оператору return
в main
.Больше ничего нельзя сказать об этом.
Теперь, какой вопрос вы действительно должны задавать?Есть два аспекта: один - сторона C ++, а другой - сторона хоста (то есть операционная система).
У вас нет никакого контроля над тем, как любая конкретная операционная система обрабатывает состояния ошибок программ, которыеэто запускает.Единственное, что гарантирует стандарт C ++, это:
Если ваш main
возвращает 0
, EXIT_SUCCESS
или нет вообще, то программа завершается таким образом, чтосигнализирует об успехе;и
, если ваш main
возвращает EXIT_FAILURE
, то программа завершается способом, который сигнализирует об ошибке.
Фактические возвращаемые значениявашей программы полностью зависят от платформы, то есть от операционной системы и среды выполнения.
Например, в Linux об успешном сообщении сообщается через значение 0, а об ошибке - через ненулевое значение, так что C или C ++Программа может быть выполнена, просто возвращая значение main()
обратно в ОС (и определяя EXIT_SUCCESS
как 0
).Другие платформы могут выбирать другую семантику!