A C programozási nyelvben szereplő változók, amelyeket az Arduino használ, rendelkeznek bizonyos tulajdonságokkal. Ezek közül az egyik a "scope" - azaz a hatáskör. Ez a tulajdonság a régebbi programnyelvekből (pl.: BASIC) jellemzően hiányzott. Ott még minden változó úgynevezett globális változó volt, azaz bárhonnan lehetett bármelyiket használni. Ennek ellentéte a lokális változó, amelyet csak az adott (általad létrehozott) funkciónál illetve az adott funkcióblokkban lehet használni. Az Arduino IDE környezetben azok a változók, amelyek nem valamelyik program blokkban (pl.: setup(), loop(), stb.) lettek létrehozva, automatikusan globális változók lesznek.
Amikor egy programod nagyobb, komplexebb lesz, akkor a lokális változók használata előnyösebb, mert biztosítja, hogy csak arra tudod használni, amire valóban létre lett hozva. Ez megakadályozza, hogy olyan jellegű programhibák legyenek, amelyek oka, hogy ugyanazt a változót használod több program blokkban is.
Célszerű még továbbá a "for" ciklusnak az inicializálása során saját változót létrehozni, ami csak a for ciklus kapcsos zárójellel zárt részei között lesz használható.
Példák:
int gPWMval; //ez a változó globális, mindenhol használhatóvoid setup(){//...}void loop(){int i; // az i változó csak a loop programblokkban "látható"float f; // az i változó csak a loop programblokkban "látható"//...for (int j = 0; j <100; j++){ //a j változó csak a for ciklus kapcsos zárójelei közötti lesz elérhető }}
Az oldal forrása: link