次の方法で共有


関数宣言内でのストレージ クラス指定子の使用

関数宣言では、 static または extern のストレージクラス指定子のいずれかを使用できます。 関数には常にグローバル有効期間があります。

Microsoft 固有の仕様

内部レベルでの関数宣言は、外部レベルでの関数宣言と同じ意味になります。 これは、関数がローカル スコープで宣言されていても、その宣言位置から翻訳単位の残り全体で可視になることを意味しています。

Microsoft 固有の仕様はここまで

関数の表示規則は、次のように、変数の規則とは若干異なります。

  • static として宣言された関数は、定義されているソース ファイル内でのみ表示されます。 同じソース ファイル内の関数からは static 関数を呼び出すことができますが、他のソース ファイルの関数からは名前を指定して直接アクセスすることはできません。 異なるソース ファイルにある同じ名前の別の static 関数は、競合することなく宣言できます。

  • extern として宣言された関数は、(後で static のような関数を再宣言しない場合) プログラムのすべてのソース ファイルで参照されます。 どの関数も extern 関数を呼び出すことができます。

  • ストレージ クラスの指定子を省略する関数宣言は既定で extern です。

Microsoft 固有の仕様

Microsoft では、 static として extern ID を再定義できます。

Microsoft 固有の仕様はここまで

関連項目

C ストレージ クラス