静的なストレージ クラスの指定子
静的なストレージ クラスの指定子 静的および 外部 はオブジェクト関数に適用できます。キーワード 静的 と extern が使用できないかを次の表に示します。
静的ファイル外部の使用
構成体 |
静的ことができます。 使用されているか。 |
外部できます。 使用されているか。 |
---|---|---|
ブロック内の関数宣言 |
X |
○ |
関数の仮引数 |
X |
X |
ブロックのオブジェクト |
○ |
○ |
ブロックの外部のオブジェクト |
○ |
○ |
関数 |
○ |
○ |
クラスのメンバー関数 |
○ |
X |
クラスのデータ メンバー |
○ |
X |
typedef の名前 |
X |
X |
静的 でキーワードを使用して指定した名前で外部リンケージを持つクラスの静的メンバーを除き内部リンケージがあります。つまり現在の翻訳単位の外部からは参照できません。extern でキーワードを使用して指定した名前で外部リンケージを持つ内部リンケージを持つとして定義されます。名前を表示する方法の詳細についてはスコープ と プログラムとリンク を参照してください。
[!メモ]
宣言された インライン としてクラスのメンバー関数ではなく関数は関数が 静的 として宣言したリンケージの特性を示します。
宣言がコンパイラによって収められていないクラス名は extern の宣言で使用できます。このような宣言で導入された名前はクラス宣言が検出されたまで使用できません。