サンプルプログラム global.c
(7-2)グローバル変数
グローバル変数とは関数の外(通常はファイルの先頭の方)で宣言した変数のことです。
#include <stdio.h> int s; // これがグローバル変数です。 int add( int x, int y ) { int z; z = x + y; return; } void main( void ) { s += add( 1, 2 ); // sは0で初期化されているはず!、s = 3 になります printf( "s = %d\n", s ); s += add( 1, 2 ); // s = 6 になります printf( "s = %d\n", s ); }
実行結果は以下のようになります。
s = 3 s = 6
プログラムリスト3行目の、
int s;
ですが、これがグローバル変数 s です。
static宣言していませんがグローバル変数なので(関数外で宣言されているため)静的変数になります。
グローバル変数(静的変数)はインスタンス起動時に0で初期化されていますのでいきなり演算することができます。
グローバル変数 s は宣言されている位置以降のすべての関数から参照することができます。
main関数内の最初の、
s += add( 1, 2 );
の行ですが、ここで s はプログラム中では明示的に初期化していませんがインスタンス起動時に0に初期化されていますのでいきなり演算( += )しています。