Last Update 2012/07/05
外部変数の使用に際して、次のような場合に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
-----------