关于C语言的位段
怎么把下面结构体内的位段 unsigned a:4; unsigned b:4; 拼在一个char里面,a为高4位,b为第四位
typedef struct _S
{
unsigned a:4;
unsigned b:4;
unsigned c:22;
unsigned q:1;
unsigned h:1;
//unsigned i:33; // 错误:‘i’ 的宽度超过它自身的类型
//unsigned i:1;当多出此行时,该结构体大小由4变为8,因为此行之前正好为32位
} S;
[解决办法]
unsigned char ret = S.a<<4 | S.b
[解决办法]
位域的具体实现依赖平台