【发布时间】:2016-08-18 11:57:04
【问题描述】:
这个问题可能有也可能没有重复,虽然我试图找到一个,但每个人的答案似乎只是指声明/原型。他们指定void foo() { } 的定义与void foo(void) { } 相同,但我应该实际使用哪种方式?在 C89 中?在 C99 中?我相信我应该开始将void foo(void); 用于我的prototype 声明,但是如果我使用void 或不用于定义,有什么区别吗?
【问题讨论】:
-
两者都可以,我听到的关于
void foo (void) {}的唯一论点是它明确表示不需要任何参数——有助于提高可读性。 -
混淆的根源在于
void关键字在C89之前并不存在。因此,一些坏习惯一直延续到今天。没有参数的函数的正确定义是void foo(void)。 -
声明和定义必须一致
-
它们必须匹配verbose。
-
@AlterMann 非常感谢。
标签: c