typedef struct{
uint16_t high_value:8;
uint16_t low_value:8;
}CODE;
CODE mm;
mm.high_value = 0xaa;
mm.low_value = 0x0;
uint16_t bb;
memcpy(&bb,&mm,sizeof(CODE));
//当然也可以反过来使用:
uint16_t bb = 0x12;
memcpy(&mm,&bb,sizeof(CODE));
以下の定義と比較すると、操作が便利です。
typedef struct{
uint8_t high_value;
uint8_t low_value;
}CODE;
CODE nn;
nn.high_value = 0xAA;
nn.low_value = 0x0;
uint16_t aa = nn.high_value<<8+nn.low_value;