1. 内存对齐怎么理解?下面两个结构体的大小是多少?答案:内存对齐主要是为了让 CPU 更高效地访问数据。结构体成员不是简单地按字段大小相加,而是会按照成员自身对齐要求和结构体整体对齐要求插入 padding。 struct S1 { char c; double b; int i; }; struct S2 { S1 s; float f; }; 在常见 64 位环境下,double 按 8 字节对齐,int 按 4 字节对齐,char 按 1 字节对齐。S1 的布局一般是:char c 占 1 字节为了让 double b 按 8 字节对齐,中间补 7 字节double b 占 8 字节i...