C零散知识点汇总之union关键字
  qrJHiMhufrJ3 2023年11月13日 24 0


union维护足够的空间来放置多个数据成员中的一种,而不是为每一个数据成员配置空间。在union中所有的数据成员公用一个空间,同一时间只能存储其中一个数据成员,并且所有数据成员具有相同的起始地址

union StateMachine {
char character;
int num;
char *str;
double exp;
}

一个union只分配一个足够大的空间来容纳最大长度的数据成员,以上例子而言,最大长度是double形态,所以StateMachine的空间大小就是double数据类型的大小。

大小端模式对于union类型数据的影响:

如何判断大小端请参考博客《大端和小端模式》

union类型的数据所占空间等于或大于其最大的空间所占的空间。对于union类型的成员都从相对于该联合体基地址的偏移量为0处开始,也就是联合体的访问不乱对哪一个变量的读取都是从union的首地址开始的。

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
qrJHiMhufrJ3