C++ 基礎
首都大学東京 田川研究室
戻る

グローバル変数

グローバル変数とは、全関数からアクセスできる変数です。反対にローカル変数はサブルーティン内でしかアクセスできません。
#include <stdio.h>

int gValue;
void func()
{
    gValue = gValue + 1;
}
int main()
{
    gValue = 2;
    func();
    printf("%d\n" , gValue);
}
サブルーティンの外に書けば勝手にグローバル変数になります。以下特徴を述べます。
グローバル変数
値はプログラム開始から終了まで保持できる。
アクセスに時間がかかる。
メインメモリの許す限り確保できる。
ローカル変数
値は関数の処理が終わるまでは保持できる。再度呼び出された場合、前回の値が入っているとは限らない。(同一スレッドから連続して呼び出した場合、ほぼ確実にもとの値が入っている。気が付かずにバグとなることがある。)
高速にアクセスできる
たしか容量に上限があった気がする。(static ローカル変数は除く)
グローバル変数の接頭語には gValue のように g をつけるのがマナーだと思います。
グローバル変数は共同でプログラムを作るときにはバグの温床となるので使用はできるだけ控えましょう。C++のクラスを用いれば、グローバル変数はいらないはずです。まあちょっとしたプログラムならいいですけどね。