extern ストレージ・クラス指定子
extern ストレージ・クラス指定子により、 複数のソース・ファイルから使用できるオブジェクトを宣言できます。 extern 宣言は、記述された変数を現行ソース・ファイルの以降の 部分で使用できるようにします。 この宣言は、定義を置換しません。 この宣言は、外部的に定義された変数を記述します。
extern 宣言は、関数の外側またはブロックの先頭に現れます。 宣言が、関数を記述するか、関数の外側で現れて外部リンケージを持つオブジェクトを記述する場合は、 キーワード extern はオプションです。
ある ID の宣言がファイル・スコープに既にある場合は、 ブロック内にある同じ ID の extern 宣言は、同じオブジェクトを参照します。 ID に対するほかの宣言が、ファイル・スコープにない場合は、その ID は外部リンケージを持ちます。
C++ は、extern ストレージ・クラス指定子の使用を、オブジェクト名または関数名に制限します。型宣言と一緒に extern 指定子を使用することは正しくありません。
extern 宣言を、クラス・スコープ内で発生させることはできません。
注:
キーワード extern は、以前にはストレージ指定子またはリンケージ指定の一部として使用されていました。
C++0x 標準では、3 番目の使用法が追加されており、このキーワードを使用して明示的インスタンス生成宣言を指定できます。詳しくは、明示的インスタンス生成 (C++ のみ)を参照してください。
キーワード extern は、以前にはストレージ指定子またはリンケージ指定の一部として使用されていました。
C++0x 標準では、3 番目の使用法が追加されており、このキーワードを使用して明示的インスタンス生成宣言を指定できます。詳しくは、明示的インスタンス生成 (C++ のみ)を参照してください。