在int main(void)冗余中是否无效?

时间:2015-05-15 06:50:25

标签: c main

C99标准文件我已明确指出

  

6.7.5.3.14 标识符列表仅声明函数参数的标识符。 函数声明符中的空列表是该函数定义的一部分,指定该函数没有参数。函数声明符中不属于该函数定义的空列表指定没有提供有关参数数量或类型的信息。

我从该句中解释的是,在函数定义中编写void是多余的。我弄错了吗?

1 个答案:

答案 0 :(得分:5)

不,你稍微错误。

  • void指定绝对没有传递任何参数。
  • 空括号()表示可以使用任意个参数调用 函数,而不会生成警告。

注意:请注意,main()的实施已定义或提供无原型

也许,C11标准,第5.1.2.2.1章,更好地描述了它,

  

程序启动时调用的函数名为main。该实现声明此函数没有原型。它应定义为返回类型int且没有参数:

  int main(void) { /* ... */ }`
     

或有两个参数(此处称为argcargv,但可以使用任何名称,因为它们是声明它们的函数的本地名称):

 int main(int argc, char *argv[]) { /* ... */ }
     

或等同物; 10)或其他一些实施定义的方式。