A függvények alapértelmezés szerint külső kötéssel rendelkeznek, és a projekt bármely más fájljából meghívhatók.
A kötésről bővebben lásd a kötés fogalmát.
Egy static függvényt csak abban a forrásfájlban lehet meghívni, amelyben definiálták.
Például
// 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
}
Hiába deklarálunk egy függvényt egy fejlécfájlban, ha static-ként definiáljuk, a forrásfájlján kívülről nem hívható meg.
Egy forrásfájl beillesztheti a fejlécfájlt, meghívhatja a fejlécfájlban deklarált static függvényt, és le is fordulhat; a linker azonban nem fogja megtalálni a static függvény definícióját.
Egy forrásfájlban static-ként megjelölt függvényt nem szabad a fejlécfájljában deklarálni.