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?

questionAnswers(4)

yourAnswerToTheQuestion