union是一种特殊的数据存储机制
共用体是一种特殊的类,每次只有一个非静态数据成员处于活动状态。因此,共用体与类一样, 可包含多个数据成员,但不同的是只能使用其中的一个
要声明共用体,可使用关键字 union,再在这个关键字后面指定共用体名称,然后在大括号内指定 其数据成员:
union UnionName {
Type1 member1;
Type2 member2;
…
TypeN memberN;
};
优点是内存使用更为精细灵活,也节省了内存空间。
要实例化并使用共用体,可像下面这样做:
UnionName unionObject;
unionObject.member2 = value;
在什么情况下使用共用体
在结构体中,常使用共用体来模拟复杂的数据类型。共用体可将固定的内存空间解释为另一种类型, 有些实现利用这一点进行类型转换或重新解释内存,但这种做法存在争议,而且可采用其他替代方式。
注意 目前 共用体不够类型安全