union
{
UINT8 uc;
struct
{
UINT8 priority : 4;
UINT8 reserve : 3;
UINT8 ret : 1;//该任务是否有数据返回
}bits;
}un;
un.uc=100;
printf("%X\n",un.bits.priority);
printf("%X\n",un.bits.reserve);
printf("%X\n",un.bits.reserve);
解答:
现在大多数系统都是将低字位放在前面,而结构体中位域的申明一般是先声明高位。
100 的二进制是 001 100 100
低位在前 高位在后
4
6
6