arduino看似0!= 0

时间:2019-05-07 01:03:31

标签: c++ arduino

我很困惑为什么简单的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。

环境:

  • Mega2560
  • IDE 1.8.9

0 个答案:

没有答案