考虑这两个函数定义:
void foo() { }
void foo(void) { }
这两者有什么区别吗?如果不是,为什么会有void
个理由?审美原因?
考虑这两个函数定义:
void foo() { }
void foo(void) { }
这两者有什么区别吗?如果不是,为什么会有void
个理由?审美原因?
在C年内:
void foo()
表示"接受未指定类型的未指定数目的参数的函数foo
" void foo(void)
表示"不带参数的函数foo
"C++年:
void foo()
表示"不带参数的函数foo
" void foo(void)
表示"不带参数的函数foo
"因此,通过编写foo(void)
,我们可以在两种语言之间实现相同的解释,并使标题具有多语言性(尽管我们通常需要对标题做更多的处理,以使其真正具有跨语言性;也就是说,如果我们在编译C++,则将其包装在extern "C"
中).