这条线没有按预期工作:
uartPushPos = (uartPushPos + 1) % UART_TX_BUFF_LENGTH;
然而,下面的这个,理论上是一样的,确实有效:
//if (uartPushPos == UART_TX_BUFF_LENGTH - 1){
if (uartPushPos >= UART_TX_BUFF_LENGTH - 1){
uartPushPos = 0;
} else {
uartPushPos++;
}
UartPopPos 是 char 类型,UART_TX_BUFF_LENGTH 是设置为 16 的预处理器变量。
为什么第二个代码段有效,但第一个无效?
如果它有很大的不同,我正在为 PIC 微控制器 16f 使用 SourceBoost BoostC 编译器。
谢谢