06 February 2024

C++ 核心指南目录

“Don’t use void as an argument type”

理由

很繁琐,只有和 C 兼容的时候才需要。

例子

void f(void);   // bad
void g();       // better

注意

Dennis Ritchie 都认为应该淘汰f(void)。你可能认为淘汰掉这个函数声明方式会导致一些奇怪的问题:

int f();
f(1, 2, "weird but valid C89");
// hope that f() is defined int f(a, b, c) char* c; { /* ... */ }

其实可以放心。在 21 世纪,以及在C++中不会出现这个问题。