-1
我有两个字节变量,我想颠倒MSB字节的位。在两个字节长的变量中反转一个字节
我使用这个功能来扭转字节:
uint8_t reverse_bits(uint8_t a){
return ((a & 0x1) << 7) | ((a & 0x2) << 5) |
((a & 0x4) << 3) | ((a & 0x8) << 1) |
((a & 0x10) >> 1) | ((a & 0x20) >> 3) |
((a & 0x40) >> 5) | ((a & 0x80) >> 7);
}
我写了这个功能,收到我的变量和反向第二个字节:
uint16_t reverseByte(uint16_t b){
uint16_t b0 ;
uint16_t b1 ;
uint8_t revb;
uint8_t retb ;
b0 = b & 0x00FF;
b1 = b & 0xFF00;
revb = b1 >> 8;
retb = reverse_bits(revb);
b1 = retb;
b1 = b1 << 8;
return (b1 + b0);
}
我得到的错误冲突的类型for reverseByte在函数的第一行。
我该如何纠正它?我知道代码远没有优雅,我只需要一个快速修复。
谢谢!
不直接相关,但在初始化之前使用'revb'。 –
并在哪一行__exactly__中得到错误?请阅读:[mcve]。 –
您是否在使用它之后声明了该功能? –