scope

Переменные в языке программирования 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".
	}
}