Переменные в языке программирования C++, которые использует Arduino, имеют свойство под названием scope.
Это отличие от ранних версий языков, таких как BASIC, где каждая переменная является глобальной переменной.
Глобальная переменная - это переменная, которая видна каждой функции в программе. Локальные переменные видны только той функции, в которой они объявлены.
В среде Arduino любая переменная, объявленная вне функции (например, setup (), loop () и т. д.), Является глобальной переменной.
Когда программы становятся больше и сложнее, локальные переменные являются полезным способом гарантировать, что только одна функция имеет доступ к своим собственным переменным.
Это предотвращает ошибки программирования, когда одна функция непреднамеренно изменяет переменные, используемые другой функцией.
Иногда также удобно объявлять и инициализировать переменную внутри цикла for. Это создает переменную, доступ к которой возможен только из скобок цикла for.
int gPWMval; // Эту переменную видят все функции. void setup() { // ... } void loop() { int i; // Переменная "i" видна только внутри функции "loop". float f; // Переменная "f" видна только внутри функции "loop". // ... for (int j = 0; j < 100; j++) { // К переменной "j" можно обращаться только внутри скобок цикла "for". } }