Tôi có đoạn mã sau:bãi bỏ, bãi bỏ, C và C++
typedef void VOID;
int f(void);
int g(VOID);
mà chỉ cần biên dịch tốt trong C (sử dụng gcc 4.3.2 trên Fedora 10). Cùng mã biên dịch như C++ cung cấp cho tôi những lỗi sau:
void.c:3: error: ‘<anonymous>’ has incomplete type
void.c:3: error: invalid use of ‘VOID’
Bây giờ, đây là một cái gì đó trong thư viện bên ngoài và tôi muốn các chủ sở hữu để khắc phục vấn đề đó. Vì vậy, tôi có một câu hỏi - không C + + tiêu chuẩn cấm xây dựng này? Bạn có thể cho tôi một con trỏ/trích dẫn không? Điều duy nhất tôi có thể nhớ lại là khai báo hàm với (void) để báo hiệu danh sách tham số trống không được chấp nhận trong C++, nhưng tôi không hiểu tại sao VOID typedefed không hoạt động.
Đối với những gì nó có giá trị, Visual C++ 2008 không có vấn đề với mã đó. –
Trong windows.h nó thường là một định nghĩa '#define VOID void'. – Ismael