global 変数の使い方

存在自体が好ましくない extern な global 変数を使うときは、 .h に定義が書いてあったり、ソースファイルの #include の次の関数の外あたりに宣言を書きがち。

extern int global_value;
void nantara(int val)
{
	if(val == xxx){
		nanika_shori(global_value);
	}
}

static const な変数(定数)は関数の中に書くことが割と普通なので、同様にしてみた。

void nantara(int val)
{
	extern int global_value;
	if(val == xxx){
		nanika_shori(global_value);
	}
}

コンパイラも文句も言わないし、こちらの想定通りの動作をしている。というわけでもっと有効範囲を狭めることも出来る。

void nantara(int val)
{
	if(val == xxx){
		extern int global_value;
		nanika_shori(global_value);
	}
}

PC用のソフトで global 変数を使うことは問題外だが、リソースが限られてる状況のソフトでは割と使えるのでおためしあれ。2011年現在そういうことでもなければ C なんて使わないよね。