您的位置:首页 > 编程语言 > C语言/C++

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 的首地址位置开始。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言