W C, w jaki sposób ograniczyć zakres zmiennej globalnej do pliku, w którym jest ona zadeklarowana?
Jestem nowy w C. Mam przed sobą książkę, która wyjaśnia „zakres plików” C, w tym przykładowy kod. Ale kod deklaruje i inicjalizuje tylko zmienną zakresu pliku - nie weryfikuje zakresu zmiennej, powiedzmy, próbując uzyskać do niej dostęp w nielegalny sposób. Więc! W duchu nauki skonstruowałem eksperyment.
Plikbar.c
:
<code>static char fileScopedVariable[] = "asdf"; </code>
Plikfoo.c
:
<code>#include <stdio.h> #include "bar.c" main() { printf("%s\n", fileScopedVariable); } </code>
Zgodnie z moją książką i do Google, wezwanie doprintf()
powinien zawieść - ale tak nie jest.foo.exe
wyświetla ciąg „asdf” i kończy się normalnie. Bardzo chciałbym użyć zakresu plików. czego mi brakuje?