对齐原则
原则A:struct或者union的成员,第一个成员在偏移0的位置,之后的每个成员的起始位置必须是当前成员大小的整数倍
原则B:如果结构体A含有结构体成员B,那么B的起始位置必须是B中最大元素大小整数倍地址...(相当于先将嵌套结构体展开)
原则C:结构体的总大小,必须是内部最大成员的整数倍
示例
代码
struct A { int a; char b; char c; }; struct...(char),sizeof(short),sizeof(int),sizeof(long long)); printf("A size %d\n", sizeof(a)); printf...("B size %d\n", sizeof(b)); printf("C size %d\n", sizeof(c)); printf("D size %d\n", sizeof(d)...); printf("E size %d\n", sizeof(e)); printf("F size %d\n", sizeof(f)); }
运行结果
char:1,short