在 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];
这种属于暴利方式。
原文:https://www.cnblogs.com/svchao/p/15046835.html