プログラムが大きくなると、複数ファイルによるプログラム作成になります。
別々のファイル間でグローバル変数を使う際は、extern指定子を使います。
(extern “C”について知りたい場合は、こちらのページをご覧ください。)
一般的なグローバル変数の使い方
program1.c
#include <stdio.h>
void show(void);
// グローバル変数(定義・実体)
int idata;
void main(void) {
show();
}
program2.c
#include <stdio.h>
void show(void);
// グローバル変数(宣言・参照)
extern int idata;
void show(void) {
idata = 10;
printf("%d\n", idata);
}
グローバル変数は、”program1.c”で定義されていますが、
extern指定子を使う事により、別ファイルの”program2.c”でも
グローバル変数 idata を使う事ができるようになっています。
グローバル変数の定義・実体は、1箇所のみとなりますが、
グローバル変数の宣言・参照(extern付き)は、複数個所で使用できます。
グローバル変数を限られた関数内だけで使う
program1.c
#include <stdio.h>
void show(void);
// グローバル変数(定義・実体)
int idata;
void main(void) {
show();
}
program2.c
#include <stdio.h>
void show(void);
void show(void) {
// グローバル変数(宣言・参照)
extern int idata;
idata = 10;
printf("%d\n", idata);
}
この例の場合は、関数 show の中で extern が使用されているので、
グローバル変数 idata は、ファイル”program2.c”全体で使えるワケではなく、
この関数内でのみ使用できる。と言う事になります。
以上、グローバル変数の簡単な使い方でした。