>959
union 使って↓な使い方することがあるんだよ。
つまり、union 内の型の間で変換はせず、サイズ節約のために使う。
そして >958 を読んでその意味を噛み締めてくれ。
typedef strcut {
enum { CHAR, INT, FLOAT, STRING } tag;
union {
char c;
int n;
float f;
char *str;
} data;
} VARIANT;
void func(VARIANT v)
{
switch(v.tag) {
case CHAR:
printf("%c", v.c);
break;
case INT:
printf("%d", v.n);
break;
}
}