奇怪的与负数比较问题
在程序开发过程中发现一个问题,我定义了一个常量,是负数:
#define SENSOR_VAL_INVALID -100
用于表示获取的温度传感器值是无效的。
做测试如下:
int8_t n = 49;
int8_t temp = SENSOR_VAL_INVALID;
if (n < temp)
{
n = 0;
}
如果n是负数,则能正确比较是小于temp的。如果n是正数,则判断错误,执行了n=0语句。
有没有高人解释一下?其中int8_t是signed char类型。