tôi có một bữa tiệc thư viện C thứ ba với một cấu trúc mang tính chất tương tự nhưChuyển tiếp tuyên bố cấu trúc vô danh từ C trong C++
typedef struct
{
...
}A;
Tập tin này được tự động tạo ra thông qua một chương trình, do đó có thể thay đổi dựa trên một cái gì đó
Bây giờ trong một dự án C++ tôi chấp nhận đối số của loại trên, ví dụ như
void foo(const A & in)
{
...
}
Làm thế nào để chuyển tiếp khai báo A trong tệp tiêu đề xác định hàm trên?
Tôi đã thử:
typedef struct A A;
hoặc
struct A;
và cũng
typedef A A;
vì tò mò.
Tuy nhiên những kết quả đó trong lỗi thời gian biên dịch xác định lại loại. Cảm ơn
Bạn không thể bao gồm tệp tiêu đề cho thư viện đã định nghĩa 'typedef struct {...} A;'? – rjp
Đó không phải là một 'cấu trúc' ẩn danh (xem 6.7.2.1p13 trong tiêu chuẩn C). Bạn không thể có 'struct' ẩn danh bên ngoài một 'struct' hoặc' union'. – Olaf
C không phải là C++. Chỉ cần sử dụng tiêu chuẩn C++. Không rõ vấn đề của bạn là gì, tôi không thấy gì cả. Vấn đề gì khi sử dụng tên 'typedef'ed? – Olaf