注意:冒号的先写的对应的是 低字节的位数; 后写的是高字节的位数。 可参考该文,可以参考,倘若只有1位的话,表示的是最低位。
typedef struct{
uint16_t low_value:8;
uint16_t high_value:8;
}CODE;
CODE mm;
mm.low_value = 0x01;
mm.high_value = 0xaa;
uint16_t bb;
memcpy(&bb,&mm,sizeof(CODE));
//当然也可以反过来使用:
uint16_t bb = 0x1234;
memcpy(&mm,&bb,sizeof(CODE));
相较于如下形式的定义操作起来更为便捷。
typedef struct{
uint16_t low_value:8;
uint16_t hign_value:8;
}CODE;
CODE nn;
nn.low_value = 0x01;
nn.high_value = 0xAA;
uint16_t aa = nn.high_value<<8+nn.low_value;