c++ union 和 struct
结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员。在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(Union)。
共用体有时也被称为联合或者联合体,这也是 Union 这个单词的本意。
两者的区别在于:
- 结构体各个成员的内存相互独立,整体占用的内存大小>=全部成员内存总和(>的情况出现在可能出现内存补齐的操作)。
- 联合体的各个成员占用同一段内存,修改一个成员会影响到所有成员。使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。因而整体占用的内存大小为联合体中内存最大的个体所占的内存大小。
共用体在一般的编程中应用较少,在单片机中应用较多。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)