请考虑以下两个函数定义:
void foo() { } void foo(void) { }
两者之间有什么区别吗?如果没有,那为什么会有void争论呢?审美原因?
在C中:
void foo()表示“带有foo未指定类型的未指定数量的参数的函数” void foo(void)表示“foo不带参数的函数” 在C ++中:
void foo()
foo
void foo(void)
“foo
void foo()表示“foo不带参数的函数” void foo(void)表示“foo不带参数的函数” foo(void)因此,通过编写,我们可以在两种语言中实现相同的解释,并使标头变为多语言(尽管我们通常需要对标头做更多的事情才能使它们真正成为跨语言;也就是说,extern "C"如果要编译,则将它们包装在C ++)。
foo(void)
extern "C"