我宣布这个结构在全球范围内,这个结构/联合声明有什么问题?
struct a{
int a;
int x;
union b{
int a;
int b;
int y;
};
};
然后宣布里面主要的工会,
union b a;
,这是不给任何错误。但是,如果在结构的定义中声明联合'a',如:
struct a{
int a;
int x;
union b{
int a;
int b;
int y;
}a;
};
它给出错误“重复的成员a”。 (我们在以前的案例中使用了'a') 为什么一个人工作,另一个不工作?
其次,我们怎样才能独立使用在struct中声明的联合,但不能使用任何其他整数变量,比如'x'? 就好了,我可以执行成功地追踪:
union b z; //works in this case, BUT not if we declare 'z' with the definition.
z.y=6; //works
x=6; //gives error
(我的理解我们宣布里面主要的工会,但其在结构里面定义一样,struct.union.union_variable是有道理的,但有union.union_variable。直接让它变得独立,不应该像'x'一样对待)
因为将联合声明为'a',使它成为结构a中的另一个成员,它已经有一个名为'a'的成员? –