在C中定义无参数函数main()的标准方法

Pau*_*nta 5 c

根据最新的C标准,在没有参数的情况下定义函数的正确方法是什么:int main()int main(void)

pmg*_*pmg 9

两种形式的定义都是有效的(没有void一种形式是无效的原型不完整的(尽管是有效的)声明).

该表单int main(void) { /* whetever */ }还提供了该功能的原型.
表单int main() { /* whatever */ }不提供原型(并且编译器无法检查它是否被正确调用).

标准(PDF)

6.7.5.3/14

函数声明符中的空列表是该函数定义的一部分,指定函数没有参数.

定义:int main() { /* whatever */ }
声明:int main();
原型之间的区别:int main(void);.

定义不提供原型;
声明是有效的,但没有指定任何有关数量或类型的参数的信息;
原型是确定的,并与定义兼容.