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