在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);
。
该定义不提供原型;
声明是有效的,但没有指定有关参数数量或类型的信息;
原型是可以的,并与定义兼容。