定数と変数

トップC言語との相違点その前に>定数と変数>くりかえし

 目標

 プログラミングに定数や変数の使用は避けられない。Arduino Sketch や NXC ではプログラムをコンパイルするためにこれらの形式を明示的に定義することが必要となる。その名称は予約語(命令に使用される文字列)や特殊記号({,.など)を除き、小文字の英数字を使用する分には大きな問題は発生しない。それよりも重要なポイントは、形式(整数か、実数か etc)と有効範囲である。これらに注目して解説する。

 定数や変数の形式

 すべてのコンパイラは、コンパイルの際に定数や変数の位置を正確に確保する。そのためにこれらがどのくらいの記憶容量を必要とするのかは、予め定めておかないとコンパイラが正しく動かない。以下のように定められている。

形式
表現
補足
整数
int
int a, b;  変数 a, b を整数に定義する。
単精度実数
float
short
short a, b;  変数 a, b を単精度実数に定義する。
倍精度実数
double
long
long a, b;  変数 a, b を倍精度実数に定義する。

 Arduino Sketch や NXC は数値計算に利用することはほとんど無いので、多くの場合、定数や変数の形式は整数(int)で間に合う。

 残念なことだが、上の表にもあるように、同じ変数の形式でも名前の付け方が異なることが多い。確認をしながら定義することが重要だ。

 また、[]をつけることで『配列』を定義することができる。[]内を添え字(subscript)というが、subscript の開始は 0 からは共通として、subscript の最大値を明示するかしないかは言語により異なる。注意したいポイントだ。

 有効範囲

 昔は、変数の有効範囲がプログラム全体なんてこともあった。しかし、プログラムの表現の問題から、変数や定数「サブプログラム内部」だけを標準の有効範囲として、全体を通して利用したい場合は特別に定義する言語がほとんどになった。ここも言語による差異が見られるので確認をしながら使うようにしたい。

トップC言語との相違点>その前に>くりかえし