2017-02-20 4 views
-2

В int main(), return Значение должно указывать, как программа вышла. Как правило, мы представляем возвращаемое значение для нормального завершения и 1 для аномального завершения.Путаница о void main() in C

Далее, мне просто интересно узнать, если функция void main() не возвращает никакого возвращаемого значения, то Как операционной системе известно, что программа нормально завершена или нет в C?

+3

'void' не указан в списке разрешенных типов возврата для' main'. Так что просто не ... – StoryTeller

+1

используйте 'exit (1)' например. –

+0

Если ваша реализация * специально * documents 'void main()' в качестве юридической подписи, поведение не определено - * любой * результат возможен (включая ошибку времени выполнения), и любой результат разрешен. Это зависит от способа запуска программы и того, что ОС ожидает увидеть в определенном месте. –

ответ

1

void main() не допускается стандартом C. main должен либо вернуть int, либо определенный тип данных, определенных определением.

+1

Это не * устаревший *; это никогда не было стандартной подписью. 'main' всегда был предназначен для возврата' int'. –

+0

@JohnBode; Да. Но это было в K & R, и я могу вспомнить это оттуда. – haccks

+2

Да, к сожалению, слишком много ссылок, даже авторитетных, которые использовали 'void main()'. 27 лет со времени первого стандарта ИСО, и мы все еще сражаемся с этой битвой. –

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