【初心者歓迎】C/C++室 vol.18

このエントリーをはてなブックマークに追加
970デフォルトの名無しさん
>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;
 }
}