我有以下代码:
typedef void VOID;
int f(void);
int g(VOID);
它在 C 中编译得很好(在 Fedora 10 上使用 gcc 4.3.2)。与 C++ 编译的相同代码给了我以下错误:
void.c:3: error: ‘<anonymous>’ has incomplete type
void.c:3: error: invalid use of ‘VOID’
现在,这是外部库中的内容,我希望所有者解决该问题。所以我有一个问题——C++ 标准是否禁止这种结构?你能给我一个指针/引用吗?我唯一能记得的是在 C++ 中不推荐使用 (void) 来表示空参数列表的函数声明,但我不明白为什么 typedefed VOID 不起作用。