|
int main() { printf("sizeof(int)=%d,sizeof(short)=%d.sizeof(char)=%d\n",sizeof(int),sizeof(short),sizeof(char)); printf("pp=%d,qq=%d \n", sizeof(pp),sizeof(qq));
return 0; }
输出结果:
sizeof(int)=4,sizeof(short)=2.sizeof(char)=1 pp=8,qq=24
分析:
sizeof(pp): sizeof(a)+ sizeof(b)+ sizeof(c)=4+1+1=6<23=8= sizeof(pp) sizeof(qq): sizeof(a)+ sizeof(b)=4+1=5 sizeof(qn)=8;即qn是采用8字节对齐的,所以要在a,b后面添3个空余字节,然后才能存储qn, 4+1+(3)+8+1=17 因为qq采用的对齐是8字节对齐,所以qq的大小必定是8的整数倍,即qq的大小是一个比17大又是8的倍数的一个最小值,由此得到 17<24+8=24= sizeof(qq)
上一页 [1] [2] [3] [4] [5] [6] [7]
|