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
:
<code>static char fileScopedVariable[] = "asdf"; </code>
Expedientefoo.c
:
<code>#include <stdio.h> #include "bar.c" main() { printf("%s\n", fileScopedVariable); } </code>
Según mi libro, y para Google, la llamada aprintf()
debería fallar, pero no lo hace.foo.exe
saca la cadena "asdf" y termina normalmente. Me gustaría mucho usar el alcance del archivo. ¿Qué me estoy perdiendo?