Arduino 中整型数组(int) 的一个bug 求高人解释
最近在写一个机器人的控制程序,在设计的过程中用到了二维数组,debug了一天发现一个改正不了的bug,望高手指教。本人编程小白一个,会一点C和C++。。
废话不多说,先上代码:
int length={0};
void setup(){
Serial.begin(9600);
}
void setlength(){
int n,m;
for (n=1;n<=4;n++){
for (m=1;m<=6;m++){
length=1;
}
}
}
void send(){ //we shall first print the arrray on the screen
int n,m;
for (n=1;n<=4;n++){
for (m=1;m<=6;m++){
Serial.print(length);
Serial.print(" ");
}
Serial.println("");
}
delay(1000);
}
void loop(){
setlength();
send();
}
照常理来说打开串口监视器看到的应该是
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
然而诡异的事情出现了
最后两行亮瞎狗眼。。
走投无路的我把数据类型改成了 float
float length={0};
现在显示正常了
求大神指点!!
这段程序只是截取了一小部分,主程序有300+行,数组设计是用的整型的。
{:soso_e136:}
本帖最后由 Super169 于 2014-9-5 00:06 编辑
程式可以執行, 已是你的好運了....
你知道int length是什麼意思嗎?
問題就在這裡:
for (n=1;n<=4;n++){
for (m=1;m<=6;m++){
length=1;
}
}
你知道執行length=1; 及 Serial.print(length); 時, 當 n=4 或 m = 6 時有什麼後果嗎? 弄明白了,,自己数组没学好。。。。。 Super169 发表于 2014-9-5 00:02 static/image/common/back.gif
程式可以執行, 已是你的好運了....
你知道int length是什麼意思嗎?
明白了,自己查出来了。。。谢谢
页:
[1]