union 维护足够的空间来置放多个数据成员中的"一种"而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址,union 主要用来压缩空间,如果一些数据不可能在同一时间同时被用到,则可以使用union。
一个union 只配置一个足够大的空间以来容纳最大长度的数据成员,例如下面的StateMachine 的空间大小就是double 数据类型的大小
1 union StateMachine 2 { 3 char character; 4 int number; 5 char *str; 6 double exp; 7 };