小编典典

C++ 或 C 中的 foo(void) 和 foo() 有区别吗?

all

考虑这两个函数定义:

void foo() { }

void foo(void) { }

这两者有什么区别吗?如果不是,为什么会有void争论?审美原因?


阅读 66

收藏
2022-05-10

共1个答案

小编典典

C 中:

  • void foo()意思是“一个函数foo采用未指定数量的未指定类型的参数”
  • void foo(void)意思是“一个foo不带参数的函数”

C++ 中:

  • void foo()意思是“一个foo不带参数的函数”
  • void foo(void)意思是“一个foo不带参数的函数”

因此,通过编写foo(void),我们在两种语言之间实现了相同的解释并使我们的头文件多语言(尽管我们通常需要对头文件做更多的事情以使它们真正跨语言;也就是说,将它们包装在一个extern "C"if 我们正在编译C++)。

2022-05-10