结构体(Struct)联合体(Union)枚举(enum)总结

本文解析了C/C++中的结构体、联合体及枚举三种数据类型的特点与应用场景。结构体用于封装不同类型的多个数据,实现数据复用;联合体通过覆盖技术让多个不同类型变量共享同一内存空间;枚举则用于定义一组命名的整型常数集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于这三个结构型数据类型,也C/C++当中常见的数据类型。不过,结构体,联合体,枚举这三种数据类型都适合在何种情况下使用,恐怕大多数人都不胜了解,下面就从概念上一一区别和 研究。
结构体struct是用一系列具有相同类型或不同类型的数据构成的数据集合。结构体是一些元素的**集合**
结构体在程序中的作用最主要的作用就是封装,而封装的好处就是可以再次利用。使用者不必关心这个是什么,只要根据定义使用就可以。
联合体union,使用的是**覆盖技术**,几个变量互相覆盖,使几种不同类型的变量存放在同一段内存单元中。
**注意:**1。在同一时刻,结构体的每个成员都有值,但联合体在每一时刻都只有一个成员的值。因为——修改联合体时,会将原来的成员值覆盖,所以,一个结构体变量占内存大小为结构体中所有成员总和,一个联合体变量占内存大小为联合体中占内存字节最大的字节。
枚举:enum 枚举目的就是一一列举,用处不是很常见,举个小例子,我们用enum定义一个变量,该变量来表示发送不同类型的包。
![定义包的类型](https://img-blog.youkuaiyun.com/20160531162655944)

在这里,会默认APPEAL_REG = 0,后面的APPEAL_LOGIN = 1 ,依次后面的变量加一;需要注意的枚举是一个被命名的整型常数的集合,不能出现其他形式的数据类型来定义枚举的成员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值