Zakres i widoczności
Identyfikator "widoczność" Określa części programu, w którym można się odwoływać — jego "zakres". Identyfikator nie jest widoczny (czyli, może być używane) tylko w porcjach programu w zakresie znaczeniowym jego "zakres,", które może być ograniczony do pliku, funkcja, blok lub prototyp funkcji, w którym pojawia się (w celu zwiększenia restrictiveness).Identyfikator zakresu jest częścią programu, w którym nazwa może być używana.Czasami nazywa się "zakres leksykalne." Istnieją cztery rodzaje zakresu: funkcja, plik, bloku i prototyp funkcji.
Wszystkie identyfikatory, z wyjątkiem etykiet mają ich zakres, w zależności od poziomu, na którym występuje deklaracji.Następujące zasady dla każdego rodzaju zakres regulować widoczność identyfikatory w ramach programu:
Zakres pliku
Niewłaściwy deklarator lub specyfikatora typu identyfikator z zakresu pliku znajduje się poza każdy blok lub listę parametrów i jest dostępne z dowolnego miejsca w jednostce tłumaczenia po jego zgłoszeniu.Identyfikator nazwy z zakresu pliku są często nazywane "globalne" lub "zewnętrzny". Zakres globalny identyfikator rozpoczyna się w punkcie uderzenia jego definicji lub deklaracji i kończy w jednostce tłumaczenia.Zakres funkcji
Etykieta jest jedynym rodzajem identyfikator, który ma zakres funkcji.Etykiety jest niejawnie zadeklarowany przez jej użycie w instrukcji.Nazwy etykiet musi być unikatowa w obrębie danej funkcji.(Aby uzyskać więcej informacji na temat etykiet i nazw etykiet, zobacz goto i oświadczenia o nazwie.)Zakres bloku
Niewłaściwy deklarator lub specyfikatora typu identyfikator z zakresu bloku pojawia się wewnątrz bloku lub na liście parametrów formalnych zgłoszeń w definicji funkcji.Jest widoczny tylko od punktu jego zgłoszenia lub definicja na końcu bloku, zawierające jego zgłoszenia lub definicji.Jej zakres jest ograniczony do tego bloku i wszelkie bloki zagnieżdżone w tym bloku i kończy się w nawias klamrowy, która zamyka skojarzone bloku.Identyfikatory takie są czasami nazywane "zmiennych lokalnych."Zakres prototyp funkcji
Niewłaściwy deklarator lub specyfikatora typu identyfikator z zakresu prototyp funkcji pojawia się w obrębie listy deklaracji parametru w prototyp funkcji (nie jest częścią deklaracji funkcji).Zasięg kończy się na końcu; niewłaściwy deklarator funkcji.
Odpowiednie deklaracje dokonywania zmiennych widoczne w innych plikach źródłowych są opisane w Klasy magazynowania.Jednakże, zmienne i funkcje zadeklarowane na zewnętrznych poziomu z statyczne Specyfikator klasy magazynowania są widoczne tylko w obrębie pliku źródłowego, w którym są zdefiniowane.Wszystkie inne funkcje są widoczne globalnie.