struct t1{
char a;
short b;
}
sizeof(t1) = 4 ,此时内存按2的倍数分配
类似 :
编号/内存
4 * * * *
0 a * b b
如果增加一个变成 char a; short b; char c;
sizeof(t1) =6 , 因为内存按2的倍数分配,所以多一个c会多分配两个字节
类似:
编号/内存
4 c * * *
0 a * b b
如果再增加一个变量char d; 那么sizeof(t1) = 6;
因为变量d会被安排到新申请的内存当中
类似:
编号/内存
4 c d * *
0 a * b b
同理如果有int e ;那么会按4的倍数分配内存。变量的存放方式同上。