要将一个char形数组中的两个字节的内容赋值给如下结构体中short型变量的指定位置,有什么好办法没?

typedef struct{
#ifdef BIGENDIAN
short id_val:12;
short id_type:4;
#else
Int16 id_type:4;
Int16 id_val:12;
#endif
}NE_ID_PARA;

不可以,看看位域去,如果你将第一个char中的第一个字节赋值给 id_val, id_val有12位,减8等于4bit,不够存放下一个byte,此时会从下一个byte开始存放

如果你非要这么干,可以这样,char a,char b
NE_ID_PARA.id_val=(a<<8|b)&0xff0
NE_ID_PARA.id_type_val=(a<<8|b)&0x07追问

如果,把那个char数组强转成NE_ID_PARA类型呢,是否可以直接赋值。

追答

数组怎么转换成结构体!!!你转给我看看

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-20
取出来直接赋值就行了 QQ298059889
相似回答