Arduino - Nibble to Integer功能不稳定的结果

时间:2014-06-02 16:17:17

标签: c++ arduino

我有以下代码,这会产生不稳定的结果。

int nibbleToInt(String val) {
  int result;

  if(val.substring(3,4) == "1") { result += 1; }
  if(val.substring(2,3) == "1") { result += 2; }
  if(val.substring(1,2) == "1") { result += 4; }
  if(val.substring(0,1) == "1") { result += 8; }

  return result;
}

我使用nibbleToInt("0010");调用该函数,然后返回8663

修改

由于以下回复,以下是工作程序:

int nibbleToInt(String val) {
  int result = 0;

  if(val.substring(3,4) == "1") { result += 1; }
  if(val.substring(2,3) == "1") { result += 2; }
  if(val.substring(1,2) == "1") { result += 4; }
  if(val.substring(0,1) == "1") { result += 8; }

  return result;
}

1 个答案:

答案 0 :(得分:4)

如果您初始化result,您可能会看到不同的结果。 :)否则(我相信)每次都会占用内存中的现有值。