Общие сведения об объявлениях
declaration:
спецификаторы-объявления последовательность-атрибутов необ список-инициализаторов-и-деклараторов необ**;**/* Компонент attribute-seq относится только к системам Майкрософт */
спецификаторы-объявления:
спецификатор-класса-хранения спецификаторы-объявления необспецификатор-типа спецификаторы-объявления необ
квалификатор-типа спецификаторы-объявления необ
последовательность-атрибутов: /* Элемент последовательность-атрибутов относится только к системам Microsoft */
атрибут последовательность-атрибутов необатрибут : один из указанных ниже /* Относится только к системам Microsoft */
список-инициализаторов-и-деклараторов:
инициализатор-деклараторсписок-инициализаторов-и-деклараторов , инициализатор-декларатор
инициализатор-декларатор:
декларатордекларатор = инициализатор /* Для инициализации скалярных переменных */
спецификатор-класса-хранения:
autoregister
static
extern
typedef
__declspec ( последовательность-модификаторов-расширенного-объявления ) /* Относится только к системам Microsoft */
спецификатор-типа:
voidchar
short
int
__int8 /* Относится только к системам Microsoft */
__int16 /* Относится только к системам Microsoft */
__int32 /* Относится только к системам Microsoft */
__int64 /* Относится только к системам Microsoft */
long
float
double
signed
без знака
спецификатор-struct-или-union
спецификатор-enum
имя-typedef
квалификатор-типа:
constvolatile
declarator:
pointer необ прямой-деклараторпрямой-декларатор:
идентификатор( декларатор )
прямой-декларатор [ константное-выражение необ ]
прямой-декларатор ( список-типов-параметров ) /* Декларатор нового стиля */
прямой-декларатор ( список-идентификаторов необ ) /* Декларатор устаревшего стиля */
pointer:
*****список-квалификаторов-типа необ*****список-квалификаторов-типа необ pointer
список-типов-параметров: /* Список параметров */
список-параметровсписок-параметров**, ...**
список-параметров:
объявление-параметровсписок-параметров , объявление-параметров
список-квалификаторов-типа:
квалификатор-типасписок-квалификаторов-типа квалификатор-типа
спецификатор-перечисления:
перечисление идентификатор необ { список-перечислителей }enum идентификатор
список-перечислителей:
перечислительсписок-перечислителей , enumerator
enumerator:
константа-перечисленияконстанта-перечисления = константное-выражение
константа-перечисления:
идентификаторспецификатор-структуры-или-объединения:
идентификатор-структуры-или-объединения необ { список-объявлений-структуры } идентификатор-структуры-или-объединенияструктура-или-объединение:
structunion
список-объявлений-структуры:
объявление-структурысписок-объявлений-структуры объявление-структуры
объявление-структуры:
список-спецификаторов-и-квалификаторов список-деклараторов-структуры ;список-спецификаторов-и-квалификаторов:
спецификатор-типа список-спецификаторов-и-квалификаторов необквалификатор-типа список-спецификаторов-и-квалификаторов необ
список-деклараторов-структуры:
декларатор-структуры список-деклараторов-структуры , декларатор-структурыдекларатор-структуры:
деклараторспецификатор-типа декларатор необ : константное-выражение
объявление-параметров:
спецификаторы-объявления декларатор /* Именованный декларатор */спецификаторы-объявления абстрактный-декларатор необ /* Анонимный декларатор */
список-идентификаторов: /* Для декларатора устаревшего стиля * /
идентификаторсписок-идентификаторов , идентификатор
абстрактный-декларатор: /* Используется с анонимными деклараторами */
указательpointer необ прямой-абстрактный-декларатор
прямой-абстрактный-декларатор:
( абстрактный-декларатор )прямой-абстрактный-декларатор необ [ константное-выражение необ ]
прямой-абстрактный-декларатор необ ( список-типов-параметров необ )
инициализатор:
выражение-присваивания{ список-инициализаторов } /* Для агрегатной инициализации */
{ список-инициализаторов , }
список-инициализаторов:
инициализаторсписок-инициализаторов , инициализатор
имя-типа:
список-спецификаторов-и-квалификаторов абстрактный-декларатор необимя-определения-типа:
идентификаторпоследовательность-модификаторов-расширенного-объявления:/* Относится только к системам Microsoft */
модификатор-расширенного-объявления необпоследовательность-модификаторов-расширенного-объявления модификатор-расширенного-объявления
модификатор-расширенного-объявления: /* Относится только к системам Microsoft */
threadnaked
dllimport
dllexport