- C语言中
union
与struct
的区别
|--------|--------------------------------------------|--------------------------------------------|
| 类型 | struct
| union
|
| 内存分配机制 | 编译器为每个成员独立分配内存空间,总内存大小 = 所有成员大小之和(考虑内存对齐) | 所有成员共享同一段内存空间,总内存大小 = 最大成员的大小 |
| 数据存储特性 | 1. 所有成员可同时存储数据 2. 成员独立无覆盖风险 3. 可初始化任意成员 | 1. 同一时间仅能存储一个成员 2. 新赋值覆盖旧数据 3. 默认仅能初始化首个成员 |
| 应用场景 | 需同时保存多个关联数据(如学生信息:姓名+年龄+成绩) | 处理互斥数据 |