typedef struct
{
char x:2,
y:3,
z:3;
}test2_t;
=======================
test2_t c1;
c1.x =1;
c1.y =2;
c1.z =3;
int* c2 = (int *)&c1;
printf(“c1.x = %d\n”, c1);
输出结果:
c1.x = 105
转换为二进制为:
011 010 01 排列次序分别是 z y x
涉及到MSB 和LSB的知识点,顺便收集:
(MSB)100 0011(LSB)
将上述结论结合MSB的知识点来描述就是:单个字节内,位域往LSB开始排列,越往后定义的位域越靠近MSB。