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