webmasterArduinoのSketch(スケッチ)では、変数に修飾子をつけて変数を宣言する事ができます。修飾子をつけて変数を宣言すると、そのキーワードに応じた性質を変数が持つ事になります。関数内でstaticを付けて宣言するとスタティック変数になります。通常のローカル変数は、関数が呼ばれる度に生成と破棄が行われますが、スタティック変数は継続的で、関数が初めて呼ばれたときに1度だけ生成され、関数が繰り返し呼ばれても、ずっと値が保持されます。place;でstatic修飾子をつけて、変数placeを宣言しています。これにより場所を表す変数placeの値を継続的なものにしています。volatile修飾子volatile修飾子を型宣言の前に付けて宣言すると、変数をレジスタではなくRAMからロードするよう、コンパイラに指示する事ができます。この様な指示が必要になるのは、特定条件では、レジスタに記憶された変数の値は不確かになるからです。具体的には、変数がコントロールの及ばない別の場所(たとえば並行して動作するコード)で変更される可能性があるときです。Arduinoの場合、割り込みサービスルーチンと呼ばれる、割り込みに関連したコードが、これに該当します。LOW;とvolatile修飾子付きで変数宣言しています。これで、割り込み発生時とメインループの双方から、安全にstateにアクセスする事が出来ます。const修飾子const修飾子をつけて変数を宣言すると、その変数は読み取りのみ可で実質的な定数になります。値は変更できなくなり、値を代入しようとすると、コンパイルエラーが発生します。3.14;で、piをconst付で宣言して使用していますが、8行目で値を代入しようとしていますので、コンパイルは通りません。まとめ必要に応じて修飾子をつけた変数宣言を行うと、効率および安全性を高めたプログラミングが可能になります。修飾子には上記以外にもPROBMEM等がありますが、別の機会に説明したいと思います。本サイトのご利用にあたっては、「ホーム」の免責事項を必ずご確認ください。