在C89/C99/C11中,在自由环境下,入口点函数是实现定义的。在托管环境中,它必须是严格符合规范程序的
是否有历史上
我认为我的问题并非主要基于观点。已经在这个线程中提出了一些有效的想法,例如Microsoft的
int main
。大多数现代编译器会将 void main
视为错误。然而,我看到很多用户使用 void main
。即使在不符合规范的编译器中允许使用,但为什么要这样做呢?我看不到任何实用理由测 void main
会优于 int main
。甚至在C89中,省略 return
是未定义行为。是否有历史上
void main
流行的原因?我认为我的问题并非主要基于观点。已经在这个线程中提出了一些有效的想法,例如Microsoft的
void main
扩展,以及自Windows流行以来,以及C书籍重印不正确信息的结果。这些都是客观和历史性的原因。
main()
应该返回什么?以获得全面的解答。我的看法是,这种做法流行是因为(a)它允许你避免编写一行代码并且(b)微软说在Windows机器上这样做没问题。同时也意味着你不关心程序的退出状态 —— 你不是在一个退出状态很重要的脚本环境下编写代码。 - Jonathan Leffler