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