|
求sizeof(s)
答案:16
解析:
int
x: 3;
int
y: 4;
int
z: 5;
是位操作,x、y、z三个位域分别占用3、4、5位,共占用两个字节。
(1、
一个位域必须存储在同一个字节中,不能跨两个字节。如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域;
2、由于位域不允许跨两个字节,因此位域的长度不能大于一个字节的长度,也就是说不能超过8位二进位。)
而一个int型有4个字节(32位),故x、y、z占四个字节;
double a;占八个字节,字节对齐后struct s占16个字节。