我很困惑为什么简单的0 == 0
比较似乎不起作用。
我的Arduino Sketch中包含以下内容:
int status;
status = do_something();
if(status == 0) {
Serial.println("status == 0");
} else {
Serial.print("status = ");
Serial.println(status);
Serial.print("status (hex) = ");
Serial.println(status, HEX);
Serial.print("status - 5 = ");
Serial.println(status - 5);
Serial.print("freeMemory inside if = ");
Serial.println(freeMemory());
}
我希望发生的是,如果状态为0
,那么它将打印出status == 0
,但这是实际输出:
status = 0
status (hex) = 0
status - 5 = -5
freeMemory inside if = 1371
它属于else
子句的事实意味着status
不为零。但是,当我同时用十进制和十六进制打印值时,它是0。我不知道怎么可能。
我以为是由于内存问题,我可能遇到了一些时髦的行为,但是您可以看到我有1.3K的可用RAM。
环境: