为什么我们在C中有main的多个声明?

时间:2011-09-27 12:32:20

标签: c

C不支持函数重载。那么我们怎么能有3个主要的原型? 拥有3个原型的历史原因是什么?

1 个答案:

答案 0 :(得分:9)

main只有两个原型,需要符合标准的C实现来识别:int main(void)int main(int, char *[])。这不是重载,因为每个程序仍然只能有一个main;在一个程序中有void foo(int, double)而在另一个程序中有char *foo(FILE *)也没有超载。

这两个原型的原因是方便:一些应用程序需要命令行参数,而其他应用程序则不打扰它们。

所有其他原型,例如void main(void)int main(int, char *[], char *[]),都是依赖于编译器/平台的扩展。