题目一

题目二

在 16 位机器上,通常以 2 字节为边界对齐。
- 首先看
char a,它占用 1 个字节。 - 接着是
int b,占用 2 个字节。由于要满足边界对齐,在 char a后面会填充 1 个字节,使得 int b从 2 字节边界开始存储。 - 最后是
char c,占用 1 个字节。
整个结构体总共占用的空间为:1(char a)+1(填充字节)+2(int b)+1(char c)+1(填充字节)=6 个字节。
如果不考虑边界对齐,应该占用 1 + 2 + 1 = 4 个字节。
所以由于边界对齐浪费了 2 个字节的空间。
题目三???


题目四???

题目五???
