在 IAR (for STM8)的编译中,经常有如下的警告:
Warning[Pa082]: undefined behavior: the order of volatile accesses is undefined in this statement。
意思是这条语句中有多个被 volatile 定义过的变量。编译器会认为有问题。
原代码: I2C_DR = _i2c_cmd_p->data[_i2c_cmd_p->di++]; 改成: di = _i2c_cmd_p->di++; I2C_DR = _i2c_cmd_p->data[di];
这种属于暴利方式。