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