関数宣言内でのストレージ クラス指定子の使用
関数宣言では、 static
または extern
のストレージクラス指定子のいずれかを使用できます。 関数には常にグローバル有効期間があります。
Microsoft 固有の仕様
内部レベルでの関数宣言は、外部レベルでの関数宣言と同じ意味になります。 これは、関数がローカル スコープで宣言されていても、その宣言位置から翻訳単位の残り全体で可視になることを意味しています。
Microsoft 固有の仕様はここまで
関数の表示規則は、次のように、変数の規則とは若干異なります。
static
として宣言された関数は、定義されているソース ファイル内でのみ表示されます。 同じソース ファイル内の関数からはstatic
関数を呼び出すことができますが、他のソース ファイルの関数からは名前を指定して直接アクセスすることはできません。 異なるソース ファイルにある同じ名前の別のstatic
関数は、競合することなく宣言できます。extern
として宣言された関数は、(後でstatic
のような関数を再宣言しない場合) プログラムのすべてのソース ファイルで参照されます。 どの関数もextern
関数を呼び出すことができます。ストレージ クラスの指定子を省略する関数宣言は既定で
extern
です。
Microsoft 固有の仕様
Microsoft では、 static
として extern
ID を再定義できます。
Microsoft 固有の仕様はここまで