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

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

两种forms的定义都是有效的(没有void是无效的原型不完整的(尽管是有效的) 声明 )。

formsint main(void) { /* whetever */ }也提供了函数的原型。
表单int main() { /* whatever */ }不提供原型(编译器无法检查它是否被正确调用)。

见标准(PDF)

6.7.5.3/14

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

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

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