グローバル変数 【global variable】 大域変数
特定の関数やメソッド、サブルーチンなどのコードブロックに所属せず、プログラム全体を有効範囲(スコープ)とする変数である。通常、プログラムの冒頭など、どのブロックにも含まれない最も外側に変数宣言を記述することにより定義することができる。変数の寿命はプログラムの開始から終了までで、プログラムの実行中はずっと同じメモリ領域に置かれ、内容が維持され続ける。
多数の関数などにまたがってプログラム全体で頻繁に参照・更新される変数などを、いちいち引数などの形で明示的に受け渡さなくてもよいといった利点があり、メモリ容量や処理速度に厳しい制約がある場合などには多用されることもある。
一方、プログラム中のどこからでも変更できるため、プログラムの規模が大きくなるとどこでどのように書き換えられているのか把握しにくくなり、予期せぬバグが生まれたり、開発の分業やコードの追加・修正が困難になる。
また、開発者の異なる複数のソースコードを連結して実行ファイルを生成する場合など、グローバル変数の変数名が衝突してバグを生み出すこともある。このような特徴からグローバル変数の使用を好ましくないと考える開発者も多く、グローバル変数を仕様から排除したプログラミング言語もある。
(2018.11.9更新)