2011-01-27 4 views
1

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

+0

Какая платформа/оболочка/и т. Д.? – jason

+2

Многочисленные дубликаты, например. Http: // StackOverflow.com/questions/2456335/return-value-of-main-in-windows –

+0

Он возвращает значение тому, кто его запустил. Если вы запустили его из оболочки, он возвращает значение в оболочку. Если вы запустили его из среды IDE (например, Visual Studio), тогда код возврата отправляется в Visual Studio. Если вы дважды щелкнете исполняемый файл на рабочем столе ... ну, он будет возвращен в зависимости от того, какой процесс Windows породил его. – RPGillespie

ответ

7

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

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

+3

Возможно, он не переходит в ОС, он может перейти в оболочку. – jason

+2

В более общем плане, он переходит к процессу, который вызывает исполняемый файл. –

+0

Ммм, это правда. Давайте это исправим. –

4

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

В оболочке вы можете получить статус выхода программы с помощью $ ?, например:

./prog 
exit_status=$? 
0

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

return my_return_value; 

и это игра.

+0

Не так, где. – jason

+0

@Jason Как я уже сказал, * в любой момент, в котором это нравится *. После его завершения возвращается возвращаемое значение. –

+0

@Jason интерпретируют, что вопрос заключается в том, как процесс может читать возвращаемое значение другого процесса? –

0

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

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

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

0

С C99 Стандарт:

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

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

, а затем

7.20.4.3 exit функция

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

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

Смежные вопросы