Udostępnij za pośrednictwem


Obszary nazw

Kompilator konfiguruje "obszary nazw" rozróżnienie między identyfikatory używane dla różnych rodzajów towarów.Nazwy w obrębie każdego obszaru nazw muszą być unikatowe, aby uniknąć konfliktu, ale identyczna nazwa mogą pojawiać się w więcej niż jeden obszar nazw.Oznacza to, że można używać ten sam identyfikator dla dwóch lub więcej różnych elementów, pod warunkiem, że pozycje w pomieszczeniach inną nazwę.Kompilator może rozwiązać odwołania na podstawie składni kontekstu identyfikatora w programie.

[!UWAGA]

Nie należy mylić ograniczone pojęcie c obszar nazw za pomocą funkcji "namespace" C++.Zobacz przestrzeni nazw w c++ Skorowidz języka i Aby uzyskać więcej informacji.

Ta lista zawiera opis obszarów nazw używanych w C.

  • Instrukcja etykiety
    Instrukcja nazwanych etykiety są części sprawozdania.Definicje instrukcji etykiety są zawsze następuje dwukropek, ale nie jest częścią są przypadku etykiety.Używa etykiet instrukcji zawsze natychmiast wykonaj słowa kluczowego goto.Instrukcja etykiety nie muszą być różne inne nazwy lub nazw etykiet w innych funkcji.

  • Znaczniki struktury Unii i wyliczenie
    Znaczniki te są częścią struktury Unii i wyliczenie specyfikatorze typu i, jeśli jest obecny, zawsze niezwłocznie przystępują do słów zastrzeżonych struct, Unii, lub enum.Nazwy tagów musi być różny od wszystkich innych struktury, wyliczenia lub Unii znaczników za pomocą tej samej widoczności.

  • Członkowie struktury lub związki
    Nazwy składników są przydzielane w obszary nazw skojarzonych z każdej struktury i typu Unii.Oznacza to, że ten sam identyfikator może być nazwa składnika w dowolnej liczbie struktur lub związków, w tym samym czasie.Definicje nazwy składników zawsze występować w ramach struktury lub specyfikatorze typu Unii.Używa nazwy składników zawsze natychmiast wykonaj operatorów wybranych elementów członkowskich (-> i .).Nazwa elementu członkowskiego musi być unikatowa w obrębie struktury lub Unii, ale nie musi być różne od nazw innych w programie, w tym nazwy członków różnych struktur i związków, lub nazwę sama struktura.

  • Identyfikatory zwykłe
    Inne nazwy dzielą się na obszar nazw, zawierający zmienne, funkcje (łącznie z parametrami formalnymi i zmienne lokalne) i stałe wyliczania.Nazwy identyfikatora posiadać zagnieżdżonych widoczności, więc można zdefiniować je ponownie w blokach.

  • Element TypeDef nazwy
    Nie można użyć nazwy elementu TypeDef jako identyfikatorów, w tym samym zakresie.

Na przykład, ponieważ znaczniki struktury, członkowie struktury i nazwy zmiennych są w trzech różnych nazw spacje, trzy elementy nazwany student w tym przykładzie nie powodują konfliktów.Kontekst każdego elementu umożliwia poprawnej interpretacji każde wystąpienie student w programie.(Aby uzyskać informacje na temat struktur, zobacz Deklaracje struktury.)

struct student {
   char student[20];
   int class;
   int id;
   } student;

Gdy student pojawia się po struct słowa kluczowego, kompilator rozpozna, że tag struktury.Gdy student pojawia się po operatorze wybranych elementów członkowskich (-> lub .), nazwa odnosi się do członka struktury.W innych kontekstach student odnosi się do zmiennej struktury.Jednakże przeciążanie obszar nazw znaczników nie jest zalecane, ponieważ jest ukrywany znaczenie.

Zobacz też

Koncepcje

Struktura programu