INT16U a = 0x10;
INT16U b = 0x12;
INT16U c = 0x01;
volatile int d = 0;
if ((a - b) > c) {
d = 1;
}
和
INT16U a = 0x10;
INT16U b = 0x12;
INT16U c = 0x01;
volatile int d = 0;
if ((uint16_t)(a - b) > c) {
d = 1;
}
运行的结果是不同的。前一个d= 0,后一个d = 1.
你用你的理论来解释一下,随便你用哪个优化级别。