En C, ¿cómo restrinjo el alcance de una variable global al archivo en el que se declara?

Soy nuevo en C. Tengo un libro frente a mí que explica el "alcance del archivo" de C, incluido el código de muestra. Pero el código solo declara e inicializa una variable de ámbito de archivo; no verifica el alcance de la variable, por ejemplo, al intentar acceder a ella de forma ilegal. ¡Asi que! En el espíritu de la ciencia, construí un experimento.

Expedientebar.c:

static char fileScopedVariable[] = "asdf";

Expedientefoo.c:

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

main()
    {
    printf("%s\n", fileScopedVariable);
    }

Según mi libro, y para Google, la llamada aprintf()&nbsp;debería fallar, pero no lo hace.foo.exe&nbsp;saca la cadena "asdf" y termina normalmente. Me gustaría mucho usar el alcance del archivo. ¿Qué me estoy perdiendo?