法大奥山研究室

 previous  contents

16.2. 外部定義


 すべての関数の外側での宣言を外部宣言(External Declaration)と言い,外部宣言によるオブジェクトや関数の定義を外部定義(External Eefinition)と言います。[C99, 6.9, 1 & 4]

既に見た関数の定義は外部定義です。また,ファイル・スコープをもつオブジェクト初期化は,そのオブジェクトの外部定義です。[C99, 6.9.2, 1]

/* Example 16.2 */

#include <stdio.h>

int n = 1;

int main(void)
{
       int m = 2;
       printf("n = %d, m = %d\n", n, m);
       return 0;
}

最初の変数 n の宣言は,外部定義です。この変数はファイル・スコープを持つため,このソースファイル内では可視です。2つ目の変数 mブロック・スコープを持つので,外部定義ではありません。main関数の本体,複合文内が有効範囲です。

 実行結果です。

n = 1, m = 2

* 外部宣言されたオブジェクトを「外部変数」と呼ぶ本もある。


 previous  contents