现代 C 和 C 中是否不推荐使用 f(void) ?

新手上路,请多包涵

我目前正在重构/整理 C++ 项目中使用的一些旧 C 代码,并经常看到以下函数:

 int f(void)

我倾向于写成:

 int f()

是否有任何理由不在整个代码库中用 () 替换 (void) 以提高一致性,或者两者之间是否存在我不知道的细微差别?

更具体地说,如果 C++ 中的虚成员函数被描述为:

 virtual int f(void)

派生类包括一个成员函数:

 int f()

这是一个有效的覆盖吗?此外,我是否可能会遇到任何基于几乎相同签名的链接器问题?

原文由 SmacL 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 678
1 个回答

在 C 中,声明 int f(void) 表示返回不带参数的 int 的函数。声明 int f() 表示返回 int 的函数,该函数采用任意数量的参数。因此,如果您有一个在 C 中不带参数的函数,则前者是正确的原型。

在 C++ 中,我相信 int f(void) 已被弃用,而 int f() 是首选,因为它特别表示不带参数的函数。

原文由 Chris Young 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题