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
:
static char fileScopedVariable[] = "asdf";
Arquivofoo.c
:
#include <stdio.h>
#include "bar.c"
main()
{
printf("%s\n", fileScopedVariable);
}
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?