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?