c++ union 和 struct

结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员。在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(Union)。 

共用体有时也被称为联合或者联合体,这也是 Union 这个单词的本意

两者的区别在于:

  • 结构体各个成员的内存相互独立,整体占用的内存大小>=全部成员内存总和(>的情况出现在可能出现内存补齐的操作)。
  • 联合体的各个成员占用同一段内存,修改一个成员会影响到所有成员。使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。因而整体占用的内存大小为联合体中内存最大的个体所占的内存大小。

共用体在一般的编程中应用较少,在单片机中应用较多。

posted @   Siu_Miner  阅读(108)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示