union 关键字的用法与struct 的用法非常类似. union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址.例子如下: union StateMachine { char character; int number; char *str; double exp; }; 一个union 只配置一个足够大的空间以来容纳最大长度的数据成员,以上例而言,
1)union是几个不同类型的变量共占一段内存(相互覆盖):struct是把不同类型的数据组合成一个整体 2)对齐方式略有区别:union不需要+,只需要拿出对齐后的最长 structure union Keyword struct defines a structure. Keyword union defines a union. Example structure declaration: struct s_tag { int ival; float fval; char *cptr; }
union 概念 union 在中文的叫法中又被称为共用体,联合或者联合体,它定义的方式与 struct 是相同的,但是意义却与 struct 完全不同,下面是 union 的定义格式: union 共用体名 { 成员列表 }共用体变量名; 那么它与结构体的定义方式相同,那么区别是什么呢,下面通过一个 struct 与 union 的嵌套来说明两者的区别所在. struct my_struct { int type; union my_union { char *str; int number;