struct TestStruct
{
int a;
int b;
union
{
char c[2];
int d;
};
};
TestStruct instance;
私が行った場合
instance.a = 100;
instance.b = 200;
instance.d = 300;
すべて順調。
しかし、ユニオンに名前を付けると、次のようになります。
struct TestStruct
{
int a;
int b;
union ZZZ // Note here!!
{
char c[2];
int d;
};
};
TestStruct instance;
そして、私は再び同じことをします:
instance.a = 100;
instance.b = 200;
instance.ZZZ::d = 300;
それから
instance.ZZZ::d = 300;
上書きなのですinstance.a
が300
、なぜ?!
さらに、名前がある場合、デバッガーのウォッチ リストにユニオン メンバーが表示されません。
Visual Studio 2008 を使用しています。