C言語では、コロン構造を使用して、16ビット数の上位バイトと下位バイトを分割します。

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;

 

おすすめ

転載: blog.csdn.net/modi000/article/details/112564558