Каковы причины/против возвращения 0 из основного в ISO С++?

Я знаю, что стандарт С++ говорит, что return 0 вставлен в конце main(), если не указан оператор возврата; однако я часто вижу недавно написанный стандартно-совместимый код на С++, который явно возвращает 0 в конце main(). По каким причинам кто-то хочет явно вернуть 0, если это автоматически выполняется компилятором?

Ответы

Ответ 1

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

Ответ 2

Явным образом вы явно показываете свои намерения.

Опираясь на что-то неявное, вы можете иметь 2 случая: 1) вы намеревались это сделать, 2) вы забыли его.

Ответ 3

  • Делает это понятным для других программистов, что вы не просто забыли поставить там оператор return.

  • Некоторые компиляторы могут выдать предупреждение, если вы ничего не вернете.

  • Показывает явно, что возвращает функция.

  • Многие программисты не знают об этом правиле.

Ответ 4

Непонимание. Просто нет причин, и если кто-то не знает, что они добавят return 0;.

Ответ 5

Просто потому, что ваш код соответствует стандарту, который говорит, что ваш код будет запущен через совместимый компилятор? Верьте или нет, люди используют компиляторы, а не только последние версии GCC и Visual С++.

И, конечно, есть явное намерение, о котором говорили все остальные.

Ответ 6

Это делает поведение кода явным.

Ответ 7

Потому что некоторые люди не знают. Не обязательно люди, которые писали этот код (хотя это и возможно), но некоторые люди там. Явно писать return 0; с ними приятно.

Кроме того, в качестве конвенции он делает язык более однородным, что эстетически важно, по крайней мере, для меня.

Ответ 8

Потому что так они и делали это 30 лет назад. Это скорее соглашение ИМО.

Ответ 9

Я часто делаю это, потому что часто компилирую код для прямого C, поэтому я либо печатаю его по привычке, либо потому, что у созданного мной фрагмента main() есть явный возврат. Нет причин для его удаления, поэтому он обычно остается.

Опять же, бывают случаи, когда я не буду вводить его (возможно, я понял, что мне это не нужно), или я, возможно, использовал другой фрагмент.