Udostępnij za pośrednictwem


Omówienie deklaracji

"Zgłoszenie" Określa interpretacji i atrybuty zestaw identyfikatorów.Deklaracja, powodujący magazynowania, które mają zostać zarezerwowane dla obiektu lub funkcji o nazwie przez identyfikator nosi nazwę "Definicja". C deklaracje zmiennych, funkcji i typów mają następującej składni:

Składnia

  • declaration:
    Specyfikatory deklaracji w init listy; niewłaściwy deklaratoropt**;**

  • Specyfikatory deklaracji:
    Specyfikator klasy magazynowania atrybutu seq opt

    Specyfikatory deklaracji opt

                                  / * seq atrybutu opt jest specyficzny Microsoft * /

    Deklaracja Specyfikatory specyfikatora typu opt

    Typ kwalifikatora deklaracji Specyfikatory opt

  • init; niewłaściwy deklarator listy:
    niewłaściwy init deklarator

    init; niewłaściwy deklarator listy , ; niewłaściwy init deklarator

  • niewłaściwy init deklarator:
    niewłaściwy deklarator

    niewłaściwy deklarator = inicjatora

[!UWAGA]

Ta składnia dla declaration nie jest powtarzany w poniższych sekcjach.Składnia w poniższych sekcjach zazwyczaj rozpoczyna się od declarator symboli nieterminalnych.

Deklaracje w init; niewłaściwy deklarator listy zawierają identyfikatory, o nazwie; init jest skrótem dla inicjatora.Init; niewłaściwy deklarator listy jest sekwencją declarators, z których każdy może mieć wpisz dodatkowe informacje, i/lub inicjatora oddzielone przecinkami.declarator Zawiera identyfikatory, o ile zostały zgłoszone.Specyfikatory deklaracji symboli nieterminalnych składa się z sekwencji Specyfikatory typu i klasy magazynowania, które wskazują powiązania, czas trwania składowania oraz co najmniej część tego typu podmiotów, które wyznaczają declarators.W związku z tym deklaracje składają się z pewną kombinację klasy magazynowej Specyfikatory, specyfikatorze typu, typu kwalifikatory, declarators i inicjatorów.

Deklaracje może zawierać jedną lub więcej opcjonalne atrybuty wymienione w seq atrybutu; SEQ jest skrótem sekwencji.Te atrybuty specyficzne dla firmy Microsoft wykonywanie różnych funkcji, które zostały omówione szczegółowo w całej tej książce.Aby uzyskać listę tych atrybutów, zobacz Podsumowanie składni języka c.

W formie ogólnych deklaracja zmiennej specyfikatora typu daje typ danych zmiennej.Specyfikatora typu może być związek, jako modyfikacji typu przez const lub volatile.declarator Nadaje nazwę zmiennej, niekiedy zmodyfikowane, aby zadeklarować tablicy lub typ wskaźnika.Na przykład,

int const *fp;

deklaruje zmienną o nazwie fp jako wskaźnik do nonmodifiable (const) int wartości.W deklaracji można zdefiniować więcej niż jedna zmienna, przy użyciu wielu declarators, oddzielonych przecinkami.

Deklaracja musi mieć co najmniej jeden; niewłaściwy deklarator lub jego specyfikatora typu należy zadeklarować tag struktury, tag Unii lub członkowie wyliczenia.Declarators wszelkie pozostałe informacje o identyfikator.; Niewłaściwy deklarator jest identyfikatorem, który można modyfikować w nawiasach kwadratowych ([]), gwiazdki (*), lub nawiasów ( () ) Aby zadeklarować tablica, wskaźnik lub typ funkcji, odpowiednio.Przy deklarowaniu zmiennych prostych (takich jak znak, liczba całkowita i zmiennoprzecinkowych elementów), lub struktur i związków zmiennych prostych, declarator jest tylko identyfikator.Aby uzyskać więcej informacji o declarators, zobacz Declarators i deklaracje zmiennych.

Wszystkie definicje są niejawnie deklaracji, ale nie wszystkie deklaracje definicje.Na przykład, deklaracje zmiennych, które zaczynają się extern Specyfikator klasy magazynowej "odwołujesz," zamiast "określenie" deklaracji.Jeśli zmienna zewnętrznych określonych zanim została ona zdefiniowana lub jeśli jest zdefiniowany w innym pliku źródłowego w jednym przypadku, gdy jest używany, extern deklaracja jest konieczne.Magazyn nie jest przydzielone przez "określeniom" deklaracji ani mogą zmiennych być inicjowane w deklaracji.

Klasy magazynu lub typu (lub oba) jest wymagana w deklaracji zmiennej.Z wyjątkiem __declspec, Specyfikator klasy magazynowej tylko jeden jest dozwolone w deklaracji i nie wszystkie urządzenia klasy magazynowania Specyfikatory są dozwolone w każdym kontekście.__declspec Storage class jest dozwolone z innych specyfikatorów klasy magazynowania i jest dozwolona więcej niż jeden raz.Specyfikator klasy magazynowej deklaracji dotyczy sposobu przechowywania i zainicjować elementu deklarowanej i części, które program można odwoływać się do elementu.

Specyfikator klasy magazynowania obejmują terminale określone w c auto, extern, zarejestrować, statyczne, i typedef.Ponadto zawiera Microsoft C Specyfikator klasy magazynowania terminali __declspec.Wszystkie Specyfikator klasy magazynowania terminali, z wyjątkiem typedef i __declspec są omówione w Klasy magazynowania.Zobacz Deklaracje Typedef Aby uzyskać informacje o typedef.Zobacz Rozszerzone atrybuty klasy magazynowania Aby uzyskać informacje o __declspec.

Lokalizacja zgłoszenia w ramach programu źródłowego i obecności lub braku innych deklaracji zmiennej są ważne czynniki przy ustalaniu istnienia zmiennych.Może to być wiele redeclarations, ale tylko jedną definicję.Jednakże definicja może się pojawić więcej niż jednej jednostki tłumaczenia.W przypadku obiektów o wewnętrzne powiązania, ta reguła ma zastosowanie oddzielnie do każdej jednostki tłumaczenia, ponieważ wewnętrznie połączone obiekty są unikatowe dla jednostki tłumaczenia.Dla obiektów z zewnętrznych powiązania ta reguła ma zastosowanie do całego programu.Zobacz okres istnienia, zakres, widoczność i powiązania uzyskać więcej informacji dotyczących widoczności.

Specyfikatorze typu niektóre informacje o typach danych identyfikatorów.Specyfikator typu domyślną jest int.Aby uzyskać więcej informacji, zobacz Specyfikatorze typu.Specyfikatory typu można również zdefiniować znaczniki typu, struktury i nazwy składników Unii i stałe wyliczania.Aby uzyskać więcej informacji, zobacz Deklaracji wyliczenia, Deklaracje struktury, i Deklaracje Unii.

Istnieją dwie typ kwalifikatora terminale: const i volatile.Kwalifikatory określić dodatkowe właściwości typów, które są istotne tylko wtedy, gdy dostęp do obiektów tego typu za pomocą wartości l.Aby uzyskać więcej informacji na const i volatile, zobacz Typu kwalifikatory.Definicja wartości l, zobacz L-wartość i wartość wyrażenia.

Zobacz też

Koncepcje

Deklaracje i typów