詳細はプログラミング言語によって異なりますが、値を読み書きできるコード上の範囲が、関数やブロックなどによって制限されず、スコープがプログラム全体であることで共通しています。
プログラミング言語によって呼び名が異なることがあります。たとえば、C言語の標準規格にはグローバル変数という名前は登場しません。しかし、代わりになる簡潔な呼び名がないので、C言語においても、解説記事や会話の中では、グローバル変数という呼び名で広く定着しています。
また、C言語では、static 指定子を付加して宣言されたグローバル変数は、その宣言を行ったソースファイル内からしか使用できないように限定されます(C言語編第24章)。これでもグローバル変数と呼ばれますが、プログラム全体から使用できるという定義には当てはまっていません(明確にするため、静的グローバル変数や staticグローバル変数などと呼ぶことがあります)。
変数の値は、プログラムの実行が開始されたときから、終了するときまで、ずっとメインメモリ上に存在し続けます。
どこからでも使えることは便利なように感じられますが、プログラムの規模が大きくなるにつれて、どこからどのタイミングで、どのように読み書きされているのかを把握することが難しくなるため、過度な使用は避けるべきとされます。
なお、グローバル(大域的)であることに対して、ローカル(局所的)な変数があり、こちらはローカル変数と呼ばれます。ローカル変数は、関数やブロックなどの内側で宣言され、その範囲内でのみ使用できる変数です。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |