静的

静的関数 の C

{other: "%{count}個の演習"}

静的関数について

関数はデフォルトで外部リンケージを持ち、プロジェクト内の他のどのファイルからでも呼び出すことができます。リンケージについて詳しくは、リンケージの概念を参照してください。static関数は、それが定義されているソースファイル内からしか呼び出すことができません。

たとえば、次のとおりです。

// file scope, internal linkage
// can only be called from within this file
static void some_function()
{
    // code snipped
}

// file scope, external linkage by default
// can be called from any other file in the project
int main()
{
    // code snipped
}

関数がヘッダーで宣言されていても、staticとして定義されていれば、そのソースファイルの外から呼び出すことはできません。ソースファイルがそのヘッダーをインクルードし、ヘッダーで宣言されたstatic関数を呼び出してコンパイルすることはできても、リンカーはstatic関数の定義を見つけられずに失敗します。ソースファイル内でstaticとマークされた関数は、そのヘッダーファイルで宣言すべきではありません。

GitHubで編集 リンクは新しいウィンドウまたはタブで開きます