|
グローバルスコープ、ファイルスコープときたら、次はローカルスコープです(ブロックスコープとも言います)。 ローカルスコープでローカル変数の寿命を制御できるということを知らない人が意外に多いようです。次のプログラムを見てください。 |
|||
|
|
||||
|
1から9まで足すだけの単純なプログラムです。変数 i に注目してください。中カッコで囲まれた内側で宣言されていますね。このように、中カッコで囲まれた部分のことを「ブロック」と言います。ここでの例のように突然あらわれる中カッコで囲まれた部分以外に、if, while, for, do のあとや関数の定義部で使われる中カッコの中身もすべてブロックです。上の例は C++ のコードですが、 C言語でもブロックは使えます。 ブロックの内側で宣言されたローカルスコープの変数は、そのブロックの内側だけで有効です。外側では使えません。それは次のような動作をするためです。
一般に、ひとつひとつの変数の寿命(確保されてから解放されるまで)は短い方が理解しやすくなります。したがって、上の例の i のように局所的にしか使わない変数はブロックで囲んでしまうのが良いのです。そうすることによって、コーディングするときに一度に気を配らなければならない範囲を狭めることができます。 |
|||
(「プログラミングのはなし」は1998年1月から1999年1月にかけて作成されたコンテンツです。)