next up previous contents
Next: 6. 記憶クラスの有効範囲と寿命のまとめ Up: 1. 記憶クラス Previous: 4. 外部変数

5. 静的外部変数

外部変数は2つの側面があります。一つは、外部変数を確保したモジュール内部 から等しく見えるというモジュール内グローバル変数的な面と、今一つは モジュール外部からも見えるという文字通りのグローバル変数としての側面です。 従って、モジュール内部では共通に利用したいが、モジュール外部からは見えない ようにしたいという場合も当然出て来るでしょう。例えば、リストの先頭の アドレスを保持するためのポインタを思い出して下さい。こうしたポインタは モジュール内部では共通に使えないと不自由ですが、外部から勝手に変更されては 困るでしょう。そうした用途のために、外部変数を宣言する際に、static クラスに指定する方法があります。このようにすると、外部変数でありながら、 モジュール外部からは参照できない変数になります。但し、あくまでも モジュール全域に渡ったグローバル変数としての役割を打ち消すだけで、存在は している訳ですから、ポインターなどで外に持ち出せば外からも参照可能になる ので注意して下さい。


    static int module_global;



Noriyo Kanayama 平成14年11月26日