union
关键字的用法与
struct
的用法非常类似。
union
维护足够的空间来置放多个数据成员中的
“
一种
”
,而不是为每一个数据成员配置
空间,在
union
中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所
有的数据成员具有相同的起始地址。例子如下:
union StateMachine
{
char character;
int number;
char *str;
double exp;
};
一个
union
只配置一个足够大的空间以来容纳最大长度的数据成员,以上例而言,最大
长度是
double
型态,所以
StateMachine
的空间大小就是
double
数据类型的大小。
在
C++
里,
union
的成员默认属性页为
public
。
union
主要用来压缩空间。如果一些数据
不可能在同一时间同时被用到,则可以使用
union
。