H8+C言語入門:第3章 何もしない(2):変数
第3章でも、何もしないプログラムを作成します。
第2章では、main関数の書き方を示しました。第3章では、C言語で処理を書く際の基本で
ある変数について述べます。
プログラムで処理をする、とは、”計算”をさせることを指します。
その計算をさせる時、計算の元となる数値や計算結果を格納する為に使う記号を変数とい
います。
サンプル3-1を見てください。
少しプログラムらしくなってきました。
変数というと数学で習った言葉がありますが、それとはちょっと似ている様で、違います。
前述した様に変数は、数値を(一時的に)格納(=記憶)するために使います。
例えば、電卓で何か数字を押して「M+」を押すと、その数値が記憶され、「MR」を押す
と、先に記憶させた数値が出てきます。変数は、ちょうどその電卓のメモリの様なもので
す。値を取っておく、保存するものです。
パソコンのハードウェアを少し知っている人であれば、メモリに数値を一時保管する為の
アドレス、の代わりという様な覚え方でもいいでしょう。メモリの実際のアドレスは、こ
れまた数字で表しますが、それが面倒なので、記号として、iとか、何か名前を付けたもの
(これを変数、変数名といいますが)です。
<サンプル3-1>
void main(void)
{ /* main関数の始まり */
int i; //変数iの宣言
i = 0; //変数iの初期化:0をセットする。
} /* main関数の終わり */
サンプル3-1に戻りましょう。
変数を使うには、次のステップを通ります。
1)宣言
2)初期化
3)計算 →これは次の章で紹介します。
宣言とは、その変数がどんな値を扱うかということを明示します。ここでは、
int i;
としました。整数型の変数、iを宣言しています。
変数の宣言は、その変数を使う前にする必要があります。
関数の{と}の内側で宣言すると(ブロック内)、その内側で有効で、他の関数から参照する
ことはできません。{と}の外側で宣言すると(ブロック外)、そのプログラムを書いている
ソースファイル内で有効になり、そのソースファイルに書かれる関数の中で参照すること
ができます。
!厳密には、{と}の内側(これをブロックといいます)であればということで、実は、関数
にとどまりません。関数内でブロックを作り、その中で変数の宣言が独立してできます。
下記の例を見てください。ブロックを二つ用意しました。外側のブロックをブロック1
とし、内側のブロックをブロック2とします。ブロック1で整数の変数iを宣言していま
す((1))。ブロック2でも整数の変数iを宣言しています((2))。(1)のiと(2)のiは、違うという
ことです。(1)のiがどんな値であっても、(2)の値は、そこでセットされるものになります
し、(2)の計算結果がどうであれ、ブロック2が終わる時の変数iの値(ここでは、0)は、ブ
ロック1に戻った時には関係がなくなっています(0ではなく、100である)。
{ //ブロック1の始点
int i; //(1)
i = 100;
{ //ブロック2の始点
int i; //(2)
i = 0;
} //ブロック2の終点
} //ブロック1の終点
そして、初期化とは、その変数の最初の値は何かということを明確にするものです。
C言語では、変数を宣言すると、その指定された型に合わせて、メモリ上にその型に従っ
た大きさが確保されます。確保されるだけで、その変数の値は、どんな値になっているか
の保証はありません。自分で最初の値を決めてあげる必要があります。ここでは、
i = 0;
としました。初期値を0として、その値をセットしています。
変数の宣言と初期化をいっしょにすることができます。その書き方は、次の通りです。
int i = 0;
<サンプル3-2>
void main(void)
{ /* main関数の始まり */
int i=0; //変数iの宣言と変数iの初期化:0をセットする。
} /* main関数の終わり */
「//」という記号の後ろに日本語で説明文(コメント)を記入しています。
これは、//に続く文字は、コンパイラに無視してくださいということを示しています。
これは、単一行コメントといいます。つまり、これは // 以降、その行がコメントになり
ます。しかしこれは、C++のコメントです。C言語のコメントではありません(C言語のコ
メントの書き方は後述します)。だから、何でも書けます。
最近のコンパイラであれば、ほとんどが//にも対応しているようですが、ANSI C 標準で
はないので、コンパイラによっては、この記号を使うと警告を出すものもありますので、
ご注意を。
C言語では正式に、/*と*/で挟むやり方です。
できるだけ、コメントは書き込んでおいた方がいいでしょう。
長いプログラムを書くと、当然作業は数日、数週間、数ヶ月、もっと長くなると数年かか
ることがあります。その様なことになると、作業が進むつれ、後で最初の方に書いた部分
が何をしているのかわからなくなる、わかりずらくなるというようなことが出てきます。
以前書いたソースコードが何をしているのか、すっかり忘れてしまうと大変ですので、プ
ログラムの実行とは何の関係もないメモ=備考=備忘録=コメントをソース上に記してお
きたい、そんな要望に応えたものです。
人間の記憶は、そうそうあてにならないので、どこかに記事を残しておいた方がいいです
よね。そこでコメントを残すということになります。適度な量で、適切な内容を残す様に
しましょう。何でも過ぎるとよくありません。コメントばかりで見にくい内容にもならな
い様にね。
では、実際にH8を動かして、「何も動かないこと」 を確認してください。
−まとめ−
1. 変数とは、電卓のメモリーのようなもの。
2. 変数には型がある。
3. 変数は最初に使う前に宣言をしなくてはならない。
4. 「=」を使って、変数に代入することができる。
5. 8進数、10進数、16進数等で数値を表現できる。
6.コメントは、/*と*/で挟むか、行頭に//を付ける。