2010年5月22日土曜日

プログラム初学者の視点

何人かの学生が

int  ledPin = 13;

pinMode(ledPin, OUTPUT);


のような変数?の使い方を理解できず,なやんでいた.名前をつけているだけなのだが,「変数=変わるもの,結果を入れるもの」という初々しい理解が邪魔をするのかもしれない.


#define ledPin 13

のほうが素直に理解できるらしい.たしかに他の用途がないという意味では明確だが...
Arduino は C++ が基本になっているので,スケッチを書く人間は,本来


const int ledPin = 13;

と書くべきだが表面的に予約語を増やすのはやめておこう,と考えているのかもしれない.
変数にするとメモリを消費する気がするが,レジスタも多いしコンパイラも最適化で定数として処理してしまうのかもしれない.

ブートローダが PORTD0, PORTD1 をシリアルでふさいだままだったり,プログラムのアップロードでリセットボタンをいちいち押す必要があったりと,いろいろなことがあるので,いっそプログラマを使って書き込みをするほうがすっきりするのだが..

0 件のコメント:

コメントを投稿