前回行った『リバーシを作ろう』を振り返って、

まだ解説していなかった部分の説明をしていこうと思います。


今回は変数のスコープ(有効範囲)についてです。


変数とは一度定義すればどこからでも参照できるわけではなく、

参照できる範囲というものがあります。


例えば、下記のようなプログラムを見てみましょう。


-----


void func(){

int value = 0;

}


int main(){

printf( "%d", value )

return 0;

}

-----

上記例はエラーとなります。


変数 value の有効範囲は func() 関数の中のみだからです。

変数は基本的に { } の中で定義されたら、その { } の中でしか利用できないのです。


そこで、リバーシでは table や turn といった、いろんな関数から参照したい変数を


-----

int value = 0;


int main(){

printf( "%d", value )

return 0;

}

-----


というように、 main() 関数の外に記述しました。

こうすることで、value はそのファイル内であれば、

どこからでも参照できる 変数として定義することが出来るのです。


この変数のことを『グローバル変数』と呼びます。