вернуть 0 неявный - PullRequest
       19

вернуть 0 неявный

15 голосов
/ 10 ноября 2008

На прошлой неделе на соревнованиях ACM ICPC в Мексике я пропустил «возврат 0» в программе на C ++. По этой причине нас наказали 20 минутами.

Я читал, что стандарт не обязывает нас писать его в конце основной функции. Это неявно, не так ли? Как я могу это доказать?

Мы использовали систему Fedora с компилятором G ++.

Ответы [ 2 ]

27 голосов
/ 10 ноября 2008

Вы ссылаетесь на Стандарт C ++, глава 3.6.1, параграф 5:

Оператор возврата в main имеет эффект от выхода из основной функции (уничтожение любых объектов с помощью автоматического срок хранения) и вызов выход с возвращаемым значением в качестве аргумент. Если контроль достигает конца основного, не встретив возврата утверждение, эффект от выполнение return 0;

Если у вас нет Стандарта под рукой, вы можете показать этот абзац в рабочем проекте. Вот пример для c ++ 98, который уже определил это.

Вы можете узнать больше здесь .

0 голосов
/ 10 ноября 2008

Вы могли бы показать им строку в книге Бьярна Страуструпа , определяющей стандарт, в котором он ее формулирует: поскольку он является каноническим стандартом для языка, он не открыт для обсуждения. К сожалению, у меня нет копии, чтобы найти ее самому.

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