c++ union 和 struct

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

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

两者的区别在于:

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

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

posted @ 2022-05-17 16:40  Siu_Miner  阅读(117)  评论(0)    收藏  举报