説明
Arduinoが採用しているプログラミング言語C++の変数には、スコープという特性があります。これは、初期のBASICなどの言語では、すべての変数がグローバル変数であるのとは対照的です。
グローバル変数とは、プログラム内のすべての関数から見ることができる変数です。ローカル変数は、それが宣言されている関数からしか見えません。Arduinoの環境では、関数の外で宣言された変数(例:setup()、loop()など)は、グローバル変数です。
プログラムが大きく複雑になってくると、ローカル変数は、ある関数だけが自分の変数にアクセスできるようにするための便利な手段です。これにより、ある関数が他の関数で使用している変数を誤って変更してしまうというプログラミングエラーを防ぐことができます。
また、forループの中で変数を宣言して初期化すると便利な場合があります。これにより、forループの括弧内からのみアクセス可能な変数が作成されます。
プログラム例
int gPWMval; // any function will see this variable void setup() { // ... } void loop() { int i; // "i" is only "visible" inside of "loop" float f; // "f" is only "visible" inside of "loop" // ... for (int j = 0; j < 100; j++) { // variable j can only be accessed inside the for-loop brackets } }