目录
结构体嵌套结构体
结构体的大小
位域
结构体嵌套结构体
含义
结构体中的成员可以是另一个结构体
语法
struct 结构体名 {
struct 结构体名 成员名;
};
结构体中共同的变量可以单独放出来,单独封装一个结构体
结构体的大小
字节对齐
含义
字节对齐主要是针对结构体而言的,通常编译器会自动对其成员变量进行对齐,以提高数据存取的效率;
作用
平台原因(移植原因): 不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。
性能原因: 数据结构(尤其是栈)应该尽可能地在自然边界上对齐。 原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。
自身对齐
默认对齐
有效对齐
位域
定义
所谓的“位域”是把一个字节中的二进制位分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。
位域的一般形式:
struct 位域结构体名 {
位域列表;
};
其中位域列表的形式为:
类型说明符 位域名:位域长度
与结构体的使用相似
注意:不要越界