Em C, como restringir o escopo de uma variável global ao arquivo no qual ela é declarada?

Eu sou novo em C. Eu tenho um livro na minha frente que explica o "escopo de arquivo" de C, incluindo código de amostra. Mas o código apenas declara e inicializa uma variável com escopo de arquivo - ele não verifica o escopo da variável tentando, digamos, acessá-la de maneira ilegal. Assim! No espírito da ciência, construí uma experiência.

Arquivobar.c:

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

Arquivofoo.c:

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

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

De acordo com meu livro, e para o Google, a chamada paraprintf() deve falhar - mas isso não acontece.foo.exe produz a string "asdf" e termina normalmente. Eu gostaria muito de usar o escopo de arquivos. o que estou perdendo?

questionAnswers(4)

yourAnswerToTheQuestion