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