union与struct的区别?
2017-07-14 09:34
309 查看
union与struct的区别?
1)union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。例子如下:
union StateMachine
{
char character;
int number;
char *str;
double exp;
};
2)一个union 只配置一个足够大的空间以来容纳最大长度的数据成员,以上例而言,最大长度是double 型态,所以StateMachine 的空间大小就是double 数据类型的大小。
3)在C++里,union 的成员默认属性页为public
4)union 主要用来压缩空间
5)如果一些数据不可能在同一时间同时被用到,则可以使用union。
6)union 型数据所占的空间等于其最大的成员所占的空间
7)对union 型的成员的存取都是相对于该联合体基地址的偏移量为0 处开始,也就是联合体的访问不论对哪个变量的存取都是从union 的首地址位置开始。
1)union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。例子如下:
union StateMachine
{
char character;
int number;
char *str;
double exp;
};
2)一个union 只配置一个足够大的空间以来容纳最大长度的数据成员,以上例而言,最大长度是double 型态,所以StateMachine 的空间大小就是double 数据类型的大小。
3)在C++里,union 的成员默认属性页为public
4)union 主要用来压缩空间
5)如果一些数据不可能在同一时间同时被用到,则可以使用union。
6)union 型数据所占的空间等于其最大的成员所占的空间
7)对union 型的成员的存取都是相对于该联合体基地址的偏移量为0 处开始,也就是联合体的访问不论对哪个变量的存取都是从union 的首地址位置开始。
相关文章推荐
- strlen与sizeof区别(转载)以及struct,union的sizeof内存对齐等问题
- 大端小端区别、Union和Struct的内存分配
- C++中的共用体(union)结构解析与结构体(struct)共用体(union) 的区别
- 联合体(union)和结构体(struct)的区别
- 联合体(union)和结构体(struct)的区别
- 大端小端区别、Union和Struct的内存分配、对齐方式
- union 与struct 区别简介
- C语言中union与struct的区别及sizeof的计算方式
- 联合体(union)和结构体(struct)的区别
- struct 与 union 的区别
- 神秘的sizeof(union和struct的区别)
- Union和struct的内存分配区别
- C中的union和struct的区别
- (转载)C中的union和struct的区别,为什么要发明union?
- union 与 struct 区别
- union和struct的区别
- 大小端区别、Union和Struct的内存大小
- Struct 和 Union区别
- union和struct区别
- class struct union 的区别