我有一个两个字节变量,我想要反转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);
}
我在函数的第一行收到错误 reverseByte的冲突类型。
我该如何纠正?我知道代码远非优雅,我只需要快速修复。
谢谢!
答案 0 :(得分:0)
问题在于函数的声明。我在宣布它之前使用过它,至少在我的情况下。
我也初始化了局部变量以消除警告
感谢您的提示。我不理解投票结果。