В C89/C99/C11 в автономной среде функция точки входа определяется реализацией. В размещенной среде она должна быть int main
в строго соответствующей программе. Большинство современных компиляторов делают ошибку void main
. Тем не менее, я вижу, что многие пользователи используют void main
. Даже если это разрешено в несоответствующем компиляторе, зачем его использовать? Я не вижу практической причины, почему void main
было бы предпочтительнее int main
. Даже в C89, это поведение undefined, чтобы оставить значение return
.
Есть ли историческая причина популярности void main
?
Я не считаю, что мой вопрос в первую очередь основан на мнениях. В этом потоке уже представлены некоторые обоснованные идеи, такие как расширение Microsoft void main
, а так же популярность Window, а также результат того, что книги C перепечатывают неверную информацию. Это объективные и исторические причины.