int main()vs void main()in C
在C中,我知道int main()返回一个int,其中void main()不是。 除此之外,他们之间有什么区别吗? 首先比第二好?
绝大多数情况下, int main(void)
或int main(int argc, char* argv[])
是您需要使用的。 特别是,如果你正在编写一个程序,这个程序将被任何主要的编译器编译成在个人计算机上运行,并且有一整套C标准库,那么你几乎肯定需要从main
返回一个int
。
(我也避免使用空的参数列表,请参阅“ 为什么我们不使用(void)在main? ”)
C99标准确实允许其他实现定义的签名,如果您已经阅读了编译器的手册并且说明可以,那么您可以使用这些标准。
(5.1.2.2.1)它应该被定义为返回types为int且没有参数…或者带有两个参数…或者以某种其他实现定义的方式
例如,用于Microchip PIC32MX系列微控制器的HITECH PICC32编译器需要一个void main(void)
签名 – 因为真的有什么会看到返回值? 另一方面,Microchip用于相同处理器(基于GCC)的官方编译器使用通常的int main(void)
。
就个人而言,即使他们被允许,我也会避免他们。
请参阅下面的注释“ 为什么我们不使用(void)in main? ”来进行一些有趣的讨论。
如果你的书说void main()
它是非常非常过时的,是由一个白痴(或两者)
编辑:确定,除非你是在一个非常不可能的系统,你有一个独立的主 – 请参阅为什么C和C ++的主要function的types留给用户来定义?
void main()
无效C. int main()
是。 这是主要的区别。