ソフトウェア開発において情報はどこまで見せるか 2

C言語において変数や定数など扱うデータは、まず局所的(ローカル)なものと広域(グローバル)なものにわけて考えられています。関数の中で宣言されるデータは局所的なものです。ローカル変数に使用するメモリ領域はスタック領域と呼ばれ、関数がその仕事を完了するとそのデータは無くなってしまいます。

 

関数の中で定義され使用されるデータは、「自動変数」とも呼ばれ、次にまた関数が呼ばれた時にもデータは引き継がれることなく、新たなデータとしてスタック領域に置かれることになります。

 

関数が一度呼ばれ、その仕事が完了する間だけ使用される、ということは、その関数の柔軟性を高めることになります。その関数を呼ぶたびに、何度も値を変えたとしても、独立して使用出来るからです。スタック領域は静的にデータを扱うので、データの大きさなども全て定義されてから使用されます。

 

なので必要なデータが沢山あればあるほど、その関数内で全て定義することになります。

 

情報は誰のものか。

 

局所的に使用されるデータを扱う、という事でローカル変数とは「関数のもの」であると言えます。そのデータの置かれている場所はメモリのスタック領域です。