C语言精通大牛笔记DAY4_结构体内存对齐
1.内存对齐
内存对齐好处
- 以空间换时间
结构体对齐原则
- 第一个属性开始 , 从0开始计算偏移量
- 第二个属性要放在 该属性的大小 与 对齐模数比 取小的值的整数倍上
- 当所有属性都计算完毕后 , 整体做二次偏移 , 将计算结果 扩充到 [结构体中最大类型 与 对齐模数]取最小值 的整数倍
查看对齐模数
#pragma pack (show)
编译后可看到对齐模数- 默认对齐模数 为 8
修改对齐模数
#pragma pack (1)
对齐模数只能修改为 2的n次方
结构体嵌套结构体案例
typedef struct _STUDENT
{
char name[128]; //0~127
int age; //128~131
int num; //132~135
double score; //136~143
float avg; //144~151
}Student;
typedef struct _TEACHER
{
char name[10]; //0~15
Student a; //16~167
double b; //168~175
}Teacher;