首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于C语言的位段,该怎么处理

2012-04-08 
关于C语言的位段怎么把下面结构体内的位段unsigned a:4unsigned b:4 拼在一个char里面,a为高4位,b为第四

关于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
[解决办法]
位域的具体实现依赖平台

热点排行