Wie beschränke ich in C den Gültigkeitsbereich einer globalen Variablen auf die Datei, in der sie deklariert ist?

Ich bin neu in C. Ich habe ein Buch vor mir, das den "Dateibereich" von C erklärt, einschließlich Beispielcode. Der Code deklariert und initialisiert jedoch nur eine dateibezogene Variable. Er überprüft den Gültigkeitsbereich der Variablen nicht, indem er beispielsweise versucht, auf illegale Weise darauf zuzugreifen. So! Im Geiste der Wissenschaft habe ich ein Experiment konstruiert.

Dateibar.c:

<code>static char fileScopedVariable[] = "asdf";
</code>

Dateifoo.c:

<code>#include <stdio.h>
#include "bar.c"

main()
    {
    printf("%s\n", fileScopedVariable);
    }
</code>

Laut meinem Buch und bei Google der Anruf beiprintf() sollte scheitern - tut es aber nicht.foo.exe gibt den String "asdf" aus und endet normal. Ich würde sehr gerne File Scoping verwenden. Was vermisse ich?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage