我正在处理Arduino代码,并且该代码似乎很好且结构良好,但是我认为一行有一个错误,或者也许我忘了添加SMTHG代码
#include <SoftwareSerial.h>
#include <avr/pgmspace.h>
const int dsize = 500;
int analogPin = A0;
int data[dsize];
int counter = 0;
unsigned long measurmentDelay = 600000; //10 min
SoftwareSerial mySerial(2, 3); // RX, TX
unsigned long time_now = millis();
void setup() {
// put your setup code here, to run once:
delay(500);
mySerial.begin(9600);
mySerial.println("###Power on###");
int i=0;
for (i = 0; i < dsize+1; i = i+1) {
data[i]=0;
}
time_now = millis();
}
我有这个错误,我不知道该怎么办
H:Pythonsketch_feb19asketch_feb19a.ino: In function 'setup':
H:Pythonsketch_feb19asketch_feb19a.ino:20:14: warning: iteration 500 invokes undefined behavior [-Waggressive-loop-optimizations]
data[i]=0;
^
H:Pythonsketch_feb19asketch_feb19a.ino:19:3: note: containing loop
for (i = 0; i < dsize+1; i = i+1) {
^
如果有人可以帮助我,请感谢。
实际上错误很明显。它告诉您,在您的循环中,迭代500有问题。
如果您仔细观察,您会发现data
是一个500个元素数组。
您的迭代从0到500(包括(,因此是501个元素。
要解决它,您的循环只能有500个步骤,而不是501(基本上删除代码中的 1(
for (i = 0; i < dsize; i = i+1)