union 联合体¶
union 联合体是一种构造类型的数据结构,在一个联合体中可以定义多种不同的数据类型,和结构体相似。
联合体的各成员共享同一段存储。通常一次只有最近写入的成员处于活动状态;随意读取其他非活动成员并不是通用、可移植的类型转换方法。sizeof(Data) 至少能容纳最大成员,并可能因对齐要求包含填充。
结构体和联合体的区别在于:
- 结构体(struct)中所有变量是“共存”的——优点是“有容乃大”,全面;
- 缺点是struct内存空间的分配是粗放的,不管用不用,全分配。
- 而联合体(union)中是各变量是“互斥”的——缺点就是不够“包容”;
- 但优点是内存使用更为精细灵活,也节省了内存空间。