c++ - Arduino - 蚕食整数函数不稳定的结果

标签 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;
}

最佳答案

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

关于c++ - Arduino - 蚕食整数函数不稳定的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23998967/

相关文章:

c++ - 关于类名的arduino c++问题

java - 重写serialEvent两次

unit-testing - 如何对Arduino代码进行单元测试?

c++ - 是否可以在 STL set<t> 上实现 next_permutation()

c++ - 下面的方案如何保证对象 cin、cout、...只有一个定义?

c++ - 如何使用 Gtkmm 打开新标签页?

c++ - Arduino 声纳和步进电机

linux - arduino IDE找不到库

C++ SLList - 从堆中删除临时节点?

c++ - 没有dup的execl管道