(1)union维护足够的空间来放置多个数据成员中的一种,而不是为每一个数据成员配置空间。在union中所有的数据成员公用一个空间,同一时间只能储存 其中一个数据成员,所有的数据成员具有相同的起始地址。例如:
union StateMachine
{
char character;
int number;
char *str;
double exp;
};
一个union只配置一个足够大的空间来容纳最大长度的数据成员,以本例而言,最大长度是double类型,所以StateMachine的空间大小就是double数据类型的大小。