Рассмотрим следующий цикл в C:
int i;
for (i = 1; i > 0; i++);
После того, как i
достигнет INT_MAX
, он будет поворачиваться INT_MIN
с приращением. Затем i > 0
оценивает false, и цикл for завершается.
Однако цикл for не завершается в Arduino, поскольку i > 0
сравнивает false, даже если i
равно -32768
.
Это почему?
PS. Я использую Mega 2560 с Arduino версии 1.0.5.
PPS. int действительно 16 бит на Mega 2560
PPPS. Полный эскиз ниже:
void setup () {
int i;
Serial.begin(9600);
for (i = 1; i > 0; i++);
}
void loop () {
Serial.println(100);
}
И я ничего не увижу в последовательном мониторе