在C中,我知道int main()返回一个int,其中void main()没有。除此之外,它们之间有区别吗?第一个好于第二个?
答案 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()
是。这是主要的区别。