C中的int main()vs void main()

时间:2012-02-20 05:19:01

标签: c int main void

在C中,我知道int main()返回一个int,其中void main()没有。除此之外,它们之间有区别吗?第一个好于第二个?

3 个答案:

答案 0 :(得分:21)

绝大多数时候,int main(void)int main(int argc, char* argv[])中的一个是你需要使用的。特别是,如果您正在编写一个程序,该程序将由任何主要编译器编译以在个人计算机上运行,​​并且具有完整的C标准库集,那么您几乎肯定需要返回int来自main

(我也避免使用空参数列表,请参阅“Why don't we use (void) in main?”)

C99标准允许允许其他实现定义的签名,如果您已阅读编译器的手册,则可以使用这些签名,并且它表示您可以。

  

(5.1.2.2.1)它应定义为返回类型为int且没有参数...或具有两个参数......或者以某种其他实现定义的方式< / p>

就个人而言,即使 允许(如果可能),我也会避免使用它们,因为如果您需要移植到另一个系统,还有一件事需要担心。

请参阅下面的评论“Why don't we use (void) in main?”,以便就此进行一些有趣的讨论。

答案 1 :(得分:5)

如果你的书上写着void main(),它要么已经过时了,要么是白痴(或两者)写的

编辑:好的,除非你是一个非常不可能的系统,你有一个独立的主体 - 见Why is the type of the main function in C and c++ left to the user to define?

答案 2 :(得分:-6)

void main()无效C. int main()是。这是主要的区别。