Loose-Info.com
Last Update 2012/07/05
TOP - C言語 - extern

外部変数の使用に際して、次のような場合にextern宣言をします。 

・外部変数を定義の記述前に使用する場合
・定義が別のファイル内に記述された外部変数を使用する場合

(例)
#include <stdio.h> #include "test.h" int main () { int i; extern int isub; /* 別ファイルで定義された外部変数 */ extern int x; /* 定義の記述前に外部変数を使用 */ for (i=0; i<3; i++) { x = x + 5; func_sub(i); isub = isub + 2; printf("main()から : isub = %d\n", isub); printf("x = %d\n", x); printf("-----------\n"); } return 0; } int x = 20;
test.h
#ifndef TEST_H #define TEST_H void func_sub(int n); #endif
test.c
#include <stdio.h> #include "test.h" int isub; void func_sub(int n) { if (n == 1) { isub = 10; } isub = n + isub; printf("isub = %d\n", isub); }

実行結果
isub = 0 main()から : isub = 2 x = 25 ----------- isub = 11 main()から : isub = 13 x = 30 ----------- isub = 15 main()から : isub = 17 x = 35 -----------