Ответ 1
Потому что просто странно не "возвращать" что-то из функции, имеющей невоенный тип возврата (даже если стандарт говорит, что это не является строго необходимым).
Я знаю, что стандарт С++ говорит, что return 0
вставлен в конце main()
, если не указан оператор возврата; однако я часто вижу недавно написанный стандартно-совместимый код на С++, который явно возвращает 0 в конце main()
. По каким причинам кто-то хочет явно вернуть 0, если это автоматически выполняется компилятором?
Потому что просто странно не "возвращать" что-то из функции, имеющей невоенный тип возврата (даже если стандарт говорит, что это не является строго необходимым).
Явным образом вы явно показываете свои намерения.
Опираясь на что-то неявное, вы можете иметь 2 случая: 1) вы намеревались это сделать, 2) вы забыли его.
Делает это понятным для других программистов, что вы не просто забыли поставить там оператор return.
Некоторые компиляторы могут выдать предупреждение, если вы ничего не вернете.
Показывает явно, что возвращает функция.
Многие программисты не знают об этом правиле.
Непонимание. Просто нет причин, и если кто-то не знает, что они добавят return 0;
.
Просто потому, что ваш код соответствует стандарту, который говорит, что ваш код будет запущен через совместимый компилятор? Верьте или нет, люди используют компиляторы, а не только последние версии GCC и Visual С++.
И, конечно, есть явное намерение, о котором говорили все остальные.
Это делает поведение кода явным.
Потому что некоторые люди не знают. Не обязательно люди, которые писали этот код (хотя это и возможно), но некоторые люди там. Явно писать return 0;
с ними приятно.
Кроме того, в качестве конвенции он делает язык более однородным, что эстетически важно, по крайней мере, для меня.
Потому что так они и делали это 30 лет назад. Это скорее соглашение ИМО.
Я часто делаю это, потому что часто компилирую код для прямого C, поэтому я либо печатаю его по привычке, либо потому, что у созданного мной фрагмента main()
есть явный возврат. Нет причин для его удаления, поэтому он обычно остается.
Опять же, бывают случаи, когда я не буду вводить его (возможно, я понял, что мне это не нужно), или я, возможно, использовал другой фрагмент.