функции main () возвращают значение? - PullRequest
4 голосов
/ 27 января 2011

Кто-нибудь подскажите, пожалуйста, где функция main () языка 'C' возвращает свое значение?

Ответы [ 5 ]

8 голосов
/ 27 января 2011
Функция

C main возвращает значение int ..., которое int передает программе, которая его выполнила (родительский процесс, если хотите), в качестве кода состояния выхода.

В частности, в большинстве операционных систем, код завершения 0 означает нормальный запуск (без реальных ошибок), а ненулевой означает, что возникла проблема, и программа должна была аварийно завершиться.

4 голосов
/ 27 января 2011

Возвращаемое значение, если функция main () используется в качестве кода состояния выхода программы.

В оболочке вы можете получить состояние завершения программы, используя $ ?, пример:

./prog
exit_status=$?
2 голосов
/ 09 февраля 2016

Из стандарта C99:

5.1.2.2.3 Завершение программы

1 Если тип возврата функции main является типом, совместимым с int, возврат из начального вызова функции main эквивалентен вызову функции exit со значением, возвращенным main функция в качестве аргумента;

, а затем

7.20.4.3 Функция exit

5 Наконец, управление возвращается в среду хоста. Если значение статуса равно нулю или EXIT_SUCCESS, возвращается определяемая реализацией форма статуса успешного завершения . Если значение статуса EXIT_FAILURE, возвращается форма реализации статуса неудачное завершение . В противном случае возвращаемый статус определяется реализацией.

Короче говоря, возвращаемое значение main возвращается в хост-среду в форме, определенной реализацией.

0 голосов
/ 21 мая 2013

Общее утверждение таково: Функция возвращает значение в хост-среду.

Таким образом, main () возвращает значение любой программе или оболочке, в которой размещен этот фрагмент кода, илиОС.

Возвращаемое значение 0 считается успешным выполнением

0 голосов
/ 27 января 2011

Функция main может свободно возвращать свое значение в любой момент, когда пожелает.Вы просто пишете:

return my_return_value;

и игра окончена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...