Extern 変数

extern キーワードは変数名の宣言に静的ストレージクラスとグローバルライフタイムの識別子として使用されます。これらの変数はプログラムの先頭から存在し、メモリはプログラムの開始直後に割り当てられ初期化されます。

複数のソースファイルで構成されたプログラムを作成することは可能です。この場合、プリプロセッサに指示する #include ディレクティブが使用されます。同じ型と識別子を持つ extern と宣言された変数は、プロジェクト内の複数のソースファイルに存在することが出来ます。

プロジェクト全体をコンパイルする時、同じ型と識別子を持つ全ての extern 変数は、グローバル変数プールのメモリの一部に関連しています。Extern 変数は、ソースファイルの分割コンパイルするのに便利です。Extern 変数が初期化出来るのは一度だけです。同じ型と識別子を持つ extern 変数の複数の初期化は禁止されています。

参照

データ型型のカプセル化と拡張性変数の初期化変数のアクセス権スコープとライフタイムオブジェクトの作成と解徐