#include <stdio.h>
struct XXX {
enum {
UNKNOWN,
INT,
CHAR,
DOUBLE
} code;
union {
int a;
char b;
double c;
} uu;
};
int main() {
struct XXX xx;
xx.code = INT;
xx.uu.a = 100;
printf("%d\n", xx.uu.a); // 输出100
}

使用结构体将联合体与其类型捆绑,这样可方便表明联合体类型,代码是恨安全的。