В C ++ 3.6.1 Основная функция
(3.6.1 / 5) Оператор return в main приводит к выходу из функции main (уничтожению любых объектов с автоматическим хранением) и
Вызов выхода с возвращаемым значением в качестве аргумента. Если контроль достигает
конец основного, не встречая оператора возврата, эффект
выполнение возврата 0;
Могу ли я сделать следующее в C99 без возврата 0?
int main() { }
Да, начиная с C99, достигнув }
в конце main возвращает 0, если тип возвращаемого значения main
совместим с int
,
5.1.2.2.3 Завершение программы
Если тип возвращаемого значения
main
Функция является типом, совместимым с int, возвращением из начального вызоваmain
Функция эквивалентна вызовуexit
функция со значением, возвращаемымmain
функция в качестве аргумента;11) достигнув}
что завершаетmain
Функция возвращает значение 0. Если возвращаемый тип не совместим сint
статус завершения, возвращаемый в хост-среду, не указан.
Да, стандарт C99 гласит (§5.1.2.2.3):
достигнув
}
что завершаетmain
Функция возвращает значение 0.