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。