union和 struct 的区别
union 联合体占用内存的可复用的,变量之间内存共享,所以每次修改都会覆盖原来已有的变量。
struct占用的内存是固定的,不同变量之间不会相互影响。
union的优缺点
union my_union{
char a;
double c;
int b;
};
优点: 节约内存,可以适用于不同变量的场景需求,如: 构建可以存不同类型变量的链表。
内存可以重复利用,如上图,my_union联合体占用的内存为里面变量中占用内存最大值,也就是double, 所以该联合体占用了8个字节的内存大小。
缺点: union每次切换不同变量的时候,都会进行覆盖重写操作,所以初学者使用容易出错造成数据丢失,所以在进行小项目开发的时候,对内存管理要求不大的情况下不是很推荐使用。
struct结构体
可以看我的博客,里面有一篇介绍了它的内存管理方式。