🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 数据对齐和数据补齐 一个存储区的地址应该是它自身大小的整数倍,然而double例外,double类型存储区的地址只需要是4的整数倍就可以了,这个对则叫做数据对齐。 结构体里面的子存储区,通常也需要遵守这个规则的。 #include <stdio.h> typedef struct { char buf[2]; int num; } tmp; int main(){ printf("sizeof(tmp)是: %ld\n", sizeof(tmp)); return 0; } 结构体存储区的大小必须是它所包含的最大基本类型子存储区大小的整数倍,如果这个基本类型子存储区是double类型则结构体存储区大小只需要是4的整数倍,这个规则叫数据补齐。 数据补齐可能导致结构体最后多出一些浪费的字节。