次の方法で共有


静的ストレージ クラス指定子

静的なストレージ クラス指定子である、static および extern は、オブジェクトと関数に適用できます。 次の表に、static キーワードと extern キーワードを使用できる場合とできない場合について示します。

static と extern の使用

構造

static の

使用可否

extern の

使用可否

ブロック内の関数宣言

関数への仮引数

ブロック内のオブジェクト

ブロック外のオブジェクト

関数

クラスのメンバー関数

クラスのメンバー データ

typedef 名

static キーワードを使用して指定された名前は、外部リンケージを持つクラスの静的メンバーである場合を除いて、内部リンケージを持ちます。 つまり、その名前は、現在の翻訳単位の外部からは参照できません。 extern キーワードを使用して指定された名前は、あらかじめ内部リンケージを持つものとして定義されていない限り、外部リンケージを持ちます。 名前の可視性の詳細については、「スコープ」および「プログラムとリンケージ」を参照してください。

注意

inline として宣言された、クラスのメンバー関数ではない関数には、static として宣言された関数と同じリンケージ特性が与えられます。

コンパイラによってまだ宣言が検出されていないクラス名は、extern の宣言内で使用できます。 このような宣言で導入された名前は、そのクラス宣言が検出されるまでは使用できません。

参照

関連項目

ストレージ クラス指定子