トップページ > キーワード検索 > extern
C言語規格
C言語(その他)
プログラム
その他
extern
機能 記憶クラス指定子の一つで、外部結合を表す。
外部結合とは、プログラム全体の構成(別のファイルを含む)の中で変数や関数を参照することを表す。

外部結合は実体(記憶領域)を持っていない。代わりに参照元が実体を持っている。

関数は記憶クラス指定子を省略するとexternを宣言した場合と同等となる。
定義 extern [宣言指定子]option 識別名 ;
実装例
/* ソースファイルA */

#include <stdio.h>

extern int func1(void);  /* ソースファイルAの関数と外部結合 */
int func2(void);         /* ソースファイルBの関数と外部結合 */
                         /* externを省略しても同様に外部結合となる */

int main(void)
{
    extern int a, b;         /* externを指定した変数の宣言          */
                             /* aはソースファイルAの変数と外部結合 */
                             /* bはソースファイルBの変数と外部結合 */
    
    printf("a=%d\n", a);            /* aの値を表示         */
    printf("b=%d\n", b);            /* bの値を表示         */
    printf("func1=%d\n", func1());  /* func1の戻り値を表示 */
    printf("func2=%d\n", func2());  /* func2の戻り値を表示 */
    
    return 0;
}

int a=1;         /* グローバル変数 */
int func1(void)  /* 関数 */
{
    return 10;
}
/* ソースファイルB */

int b=2;         /* 別ファイルのグローバル変数 */
int func2(void)  /* 別ファイルの関数 */
{
    return 5;
}
実行結果
a=1
b=2
func1=10
func2=5





inserted by FC2 system