Поделиться через


Общие сведения об объявлениях

  • declaration:
    спецификаторы-объявления последовательность-атрибутов необ список-инициализаторов-и-деклараторов необ**;**

                            /* Компонент attribute-seq относится только к системам Майкрософт */

  • спецификаторы-объявления:
    спецификатор-класса-хранения спецификаторы-объявления необ

    спецификатор-типа спецификаторы-объявления необ

    квалификатор-типа спецификаторы-объявления необ

  • последовательность-атрибутов:            /* Элемент последовательность-атрибутов относится только к системам Microsoft */
            атрибут последовательность-атрибутов необ 

  • атрибут : один из указанных ниже      /* Относится только к системам Microsoft */

    __asm

    __clrcall

    __stdcall

    __based

    __fastcall

    __thiscall

    __cdecl

    __inline

    __vectorcall

  • список-инициализаторов-и-деклараторов:
    инициализатор-декларатор

    список-инициализаторов-и-деклараторов , инициализатор-декларатор

  • инициализатор-декларатор:
    декларатор

    декларатор = инициализатор /* Для инициализации скалярных переменных */

  • спецификатор-класса-хранения:
    auto

    register

    static

    extern

    typedef

    __declspec ( последовательность-модификаторов-расширенного-объявления ) /* Относится только к системам Microsoft */

  • спецификатор-типа:
    void

    char

    short

    int

    __int8        /* Относится только к системам Microsoft */

    __int16        /* Относится только к системам Microsoft */

    __int32        /* Относится только к системам Microsoft */

    __int64        /* Относится только к системам Microsoft */

    long

    float

    double

    signed

    без знака

    спецификатор-struct-или-union

    спецификатор-enum

    имя-typedef

  • квалификатор-типа:
    const

    volatile

  • declarator:
    pointer необ прямой-декларатор

  • прямой-декларатор:
    идентификатор

    ( декларатор )

    прямой-декларатор [ константное-выражение необ ]

    прямой-декларатор ( список-типов-параметров )   /* Декларатор нового стиля */

    прямой-декларатор ( список-идентификаторов необ )      /* Декларатор устаревшего стиля */

  • pointer:
    *****список-квалификаторов-типа необ

    *****список-квалификаторов-типа необ pointer

  • список-типов-параметров:                           /* Список параметров */
    список-параметров

    список-параметров**, ...**

  • список-параметров:
    объявление-параметров

    список-параметров , объявление-параметров

  • список-квалификаторов-типа:
    квалификатор-типа

    список-квалификаторов-типа квалификатор-типа

  • спецификатор-перечисления:
    перечисление идентификатор необ { список-перечислителей }

    enum идентификатор

  • список-перечислителей:
    перечислитель

    список-перечислителей , enumerator

  • enumerator:
    константа-перечисления

    константа-перечисления = константное-выражение

  • константа-перечисления:
    идентификатор

  • спецификатор-структуры-или-объединения:
    идентификатор-структуры-или-объединения необ { список-объявлений-структуры } идентификатор-структуры-или-объединения

  • структура-или-объединение:
    struct

    union

  • список-объявлений-структуры:
    объявление-структуры

    список-объявлений-структуры объявление-структуры

  • объявление-структуры:
    список-спецификаторов-и-квалификаторов список-деклараторов-структуры ;

  • список-спецификаторов-и-квалификаторов:
    спецификатор-типа список-спецификаторов-и-квалификаторов необ

    квалификатор-типа список-спецификаторов-и-квалификаторов необ

  • список-деклараторов-структуры:
    декларатор-структуры список-деклараторов-структуры , декларатор-структуры

  • декларатор-структуры:
    декларатор

    спецификатор-типа декларатор необ : константное-выражение

  • объявление-параметров:
    спецификаторы-объявления декларатор                /* Именованный декларатор */

    спецификаторы-объявления абстрактный-декларатор необ /* Анонимный декларатор */

  • список-идентификаторов: /* Для декларатора устаревшего стиля * /
    идентификатор

    список-идентификаторов , идентификатор

  • абстрактный-декларатор: /* Используется с анонимными деклараторами */
    указатель

    pointer необ прямой-абстрактный-декларатор

  • прямой-абстрактный-декларатор:
    ( абстрактный-декларатор )

    прямой-абстрактный-декларатор необ [ константное-выражение необ ]

    прямой-абстрактный-декларатор необ ( список-типов-параметров необ )

  • инициализатор:
    выражение-присваивания

    { список-инициализаторов }   /* Для агрегатной инициализации */

    { список-инициализаторов , }

  • список-инициализаторов:
    инициализатор

    список-инициализаторов , инициализатор

  • имя-типа:
    список-спецификаторов-и-квалификаторов абстрактный-декларатор необ

  • имя-определения-типа:
    идентификатор

  • последовательность-модификаторов-расширенного-объявления:/*    Относится только к системам Microsoft */
    модификатор-расширенного-объявления необ

    последовательность-модификаторов-расширенного-объявления модификатор-расширенного-объявления

  • модификатор-расширенного-объявления:   /* Относится только к системам Microsoft */
    thread

    naked

    dllimport

    dllexport

См. также

Ссылки

Соглашения о вызовах

Грамматика структуры фразы

Устаревшие соглашения о вызовах