我有以下代碼:空隙,VOID,C和C++
typedef void VOID;
int f(void);
int g(VOID);
(使用gcc 4.3.2在Fedora 10),其編譯用C就好了。編譯爲C++相同的代碼給我下面的錯誤:
void.c:3: error: ‘<anonymous>’ has incomplete type
void.c:3: error: invalid use of ‘VOID’
現在,這東西在外部庫,我想業主解決這個問題。所以我有一個問題 - C++標準禁止這種構造?你能給我一個指針/引文嗎?我能記得的唯一的事情是函數聲明(void)發信號給空的參數列表在C++中被棄用,但我不明白爲什麼typedefed VOID不起作用。
值得一提的是,Visual C++ 2008沒有該代碼的問題。 – 2009-02-12 10:38:01
在windows.h中它通常是一個定義`#define VOID void`。 – Ismael 2009-02-12 13:44:20