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
-----------


Copyright(C) 2006-2012 CLAYPOT. All Rights Reserved.