字节对齐

结构体变量的首地址为最宽基本类型成员大小的整数倍数。        
各成员变量存放的起始地址相对于结构体变量的起始地址的偏移量必须为该变量类型所占用的字节数的倍数        
结构体总大小为结构体中最宽数据类型成员大小的整数倍。        
#pragma pack(n)来设定变量以n字节对齐方式。n字节对齐就是说变量存放的起始地址的偏移量有两种情况:        
第一、如果n大于等于该变量所占用的字节数,那么偏移量必须满足默认的对齐方式,        
第二、如果n小于该变量的类型所占用的字节数,那么偏移量为n的倍数,不用满足默认的对齐方式。        
    结构的总大小也有个约束条件,分下面两种情况:    
    如果n大于所有成员变量类型所占用的字节数,那么结构的总大小必须为占用空间最大的变量占用的空间数的倍数,否则必须为n的倍数。

你可能感兴趣的:(随手笔记)