Namespaces
Variants

File scope

From cppreference.net

Wenn der Deklarator oder Typspezifizierer, der den Bezeichner deklariert, außerhalb eines Blocks oder einer Parameterliste erscheint, hat der Bezeichner Dateigültigkeitsbereich, der am Ende der Übersetzungseinheit endet.

Die Platzierung der Deklaration eines Identifikators (in einem Deklarator oder Typspezifizierer) außerhalb eines Blocks oder einer Parameterliste bedeutet, dass der Identifikator einen Dateigültigkeitsbereich hat. Der Dateigültigkeitsbereich eines Identifikators erstreckt sich von der Deklaration bis zum Ende der Übersetzungseinheit, in der die Deklaration erscheint.

Beispiel

Die Bezeichner a, b, f und g haben Dateigültigkeitsbereich.

#include <stdio.h>
int a = 1;
static int b = 2;
void f (void) {printf("from function f()\n");}
static void g (void) {printf("from function g()\n");}
int main(void)
{
    f();
    g();
    return 0;
}
/* end of this translation unit, end of file scope */

Mögliche Ausgabe:

from function f()
from function g()