* sizeof使用过程中的两个重要点:
* 1、sizeof(struct s)
* 要点是对齐的问题,以及要深入理解#pragma pack(n);
* 默认的#pragma pack(n),n = 8;
* 当结构体的成员变量的长度>n时,使用n进行字节对齐
* 当结构的成员变量的长度<n时,使用自身默认的字节对齐
* 结构体的总长度应该为n的整数倍,如果不是,要进行补齐操作
* 例如:
* n = 4;结构体中有3个成员
struct test{
char a;
double b;
int c;
};
* sizeof(test) = 1 + 3 + 8 + 4 = 16
* 假设起始地址为0x0000,a的长度为1,1<n,使用自身字节长度对齐,那么存储a之后,地址偏移到0x0001,
* 下来进行b的存储,因为b的长度为8,8>n,使用n进行字节对齐,所以要补齐3个地址,地址偏移到0x0004
* 那么b就存储在