C++ 这个联盟意味着什么?c++;
所以我得到了这样一个联盟:C++ 这个联盟意味着什么?c++;,c++,unions,C++,Unions,所以我得到了这样一个联盟: union A { struct{ SomeType B; }b; struct{ SomeType C; }c; }a[2]; a[2]是什么意思?a[2]声明了一个变量,a,这是一个a类型的数组,大小为2它是a类型的一个名为a大小为2的数组,它是一个联合体。这对于所有类类型都是相同的 这将是一样的 union A { struct{ SomeType B; }b;
union A
{
struct{
SomeType B;
}b;
struct{
SomeType C;
}c;
}a[2];
a[2]是什么意思?a[2]声明了一个变量,
a
,这是一个a
类型的数组,大小为2
它是a
类型的一个名为a
大小为2的数组,它是一个联合体。这对于所有类类型都是相同的
这将是一样的
union A
{
struct{
SomeType B;
}b;
struct{
SomeType C;
}c;
};
A a[2];
本声明
union A
{
struct{
SomeType B
}b;
struct{
SomeType C
}c;
}a[2];
实际上相当于以下两个声明
union A
{
struct{
SomeType B
}b;
struct{
SomeType C
}c;
};
A a[2];
也就是说,a
是一个由两个元素组成的数组,类型为union a
内部anon。结构看起来格式不正确。B
和C
之后不应该有分号吗?请注意,从类型的角度来看,类和结构之间没有区别。能否在结构的成员之后添加分号?我已经为同样的问题提交了编辑。@MarcusMüller我修正了措辞。这更好吗?@NathanOliver我一开始并不认为这是错的,只是想确保读者不会认为在哪里可以使用struct
或class
,所以[0]可以是b,而[1]可以是c?或者如果a[0]是b,a[1]也应该是b?