#include<stdio.h>
#include<stdlib.h>
//默认按照四字节对齐
//#pragma pack(1)
union V
{struct X{unsigned char s1 : 2;unsigned char s2 : 3;unsigned char s3 : 3;} x;unsigned char c;
} v;
//#pragma pack()int main(void)
{v.c = 100;//对应的二进制数字是0110 0100printf("%d\n", v.x.s3);//高三位,即011getchar();return 0;
}
(1)注意对其方式的使用方法;
(2)注意字符型变量赋值的写法,此时的100,代表的是十进制,要化为二进制;
(3)注意位操作的问题,此时的s1:2表示的是一个字节的最低位。