giả sử chúng ta có một công đoàn:Làm thế nào để kiểm tra loại hiện đang được sử dụng trong công đoàn?
typedef union someunion {
int a;
double b;
} myunion;
Có thể kiểm tra những gì loại là trong sự hiệp nhất sau khi tôi đặt ví dụ a = 123? Cách tiếp cận của tôi là thêm công đoàn này vào một số cấu trúc và đặt uniontype thành 1 khi đó là int và 2 khi nó tăng gấp đôi.
typedef struct somestruct {
int uniontype
myunion numbers;
} mystruct;
Có giải pháp nào tốt hơn không?
FYI, kỹ thuật này được gọi là "công đoàn được gắn thẻ". –
Một giải pháp tốt hơn là sử dụng các giá trị enum thay vì 1, 2, v.v. –