2010-04-14 3 views
4

Я недавно использую CODE :: BLOCKS + mingw компилятор Если я не нахожу return 0 в конце программы, я вижу, что main() возвращает какое-то целое число, я узнал, что main() возвращает 0 сообщений программа выполняется успешно. Я не вижу недостатков в моем коде, почему он возвращает целое число?где main() возвращает его значение?

secondly Любая функция возвращает свое значение своему вызову функции, где main() возвращает свое значение?

ответ

10

Стандарт C++ говорит, что если вы явно не возвращают значение, компилятор должен генерировать код, как если бы вы ввели:

return 0; 

Именно то, что средство возврата стоимости и как она возвращается является реализация конкретный. Для большинства ОС возвращаемое значение становится кодом завершения процесса.

+0

Это относится только к C++; который не был определен явно как используемый язык. –

+0

@Williham Вопрос с тегом «C++» – 2010-04-14 13:30:25

+1

Он также отмечен «C». И поскольку этот вопрос возникает, он явно не использует компилятор C++. (По крайней мере, не совместимый.) –

2

main() возвращает свое значение системе (это косвенно, и давайте не будем обсуждать эту точку в настоящее время).

Когда управление достигает конца функции с возвращаемым значением (например, main(); то, что будет возвращено, - это то, что уже находится в регистре, предназначенном для хранения возвращаемого значения (это иногда значение последнего . заявление, иногда нет)

Мораль, конечно, является то, что вы всегда должны закончить ваш главный с возвращением 0;

3

основной() возвращает значение системы система может использовать это как. ошибки или код успеха. В Linux вы можете сделать это:

$ yourprog && someotherprog 

И он будет работать yourprog, а затем someotherprog, тогда и только тогда, когда yourprog возвращается 0.

В Windows вы можете использовать if errorlevel идиомы в пакетных скриптах, чтобы проверить возвращаемое значение программы.

Кроме того, если вы начинаете процесс с другого (с fork() или CreateProcess() или что-то в этом роде), вы можете позже получить его статус выхода и действовать соответствующим образом.

0

main() возвращает его значение загрузчику (системе). он указал, что программа выполнена успешно или нет. return (0); указывает на успех, поскольку УСПЕХ НЕ УКАЗАН: D !!!

+1

'EXIT_SUCCESS' определяется в' stdlib.h'. – dreamlax

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