Деклараторы и объявления переменных

В остальной части данного раздела описывается форма и значение объявлений для переменных типов, включенных в этот список. В частности, в остальных разделах объясняется, как объявить следующие объекты.

Тип переменной Описание
Простые переменные Однозначные переменные целочисленного типа или типа с плавающей запятой
Массивы Переменные, состоящие из коллекции элементов того же типа
Указатели Переменные, указывающие на другие переменные и содержащие расположения переменных (в виде адресов) вместо значений
Переменные перечисления Простые переменные с целочисленным типом, содержащие одно значение из набора именованных целочисленных констант
Структуры Переменные, состоящие из коллекции значений, которые могут иметь разные типы
Объединения Переменные, состоящие из нескольких значений разных типов, занимающих одинаковое пространство для хранения

Оператор объявления — это часть объявления, задающая имя, которое нужно вставить в программу. Он может включать модификаторы, например * (указатель на), и любые ключевые слова соглашения о вызовах Майкрософт.

Блок, относящийся только к системам Microsoft

В этом операторе объявления

__declspec(thread) char *var;

char — это описатель типа, __declspec(thread) и * — это модификаторы, а var — это имя идентификатора.

Завершение блока, относящегося только к системам Майкрософт

Деклараторы используются для объявления массивов значений, указателей на значения и функций, возвращающих значения заданного типа. Деклараторы отображаются в объявлениях массивов и указателей, описанных далее в этом разделе.

Синтаксис

declarator:
pointerнеоб.direct-declarator

direct-declarator:
identifier
( declarator )
direct-declarator[constant-expressionopt]
direct-declarator ( parameter-type-list )
direct-declarator(identifier-listopt)

pointer:
*type-qualifier-listнеоб.
*type-qualifier-listнеоб.pointer

type-qualifier-list:
type-qualifier
type-qualifier-list type-qualifier

Примечание

См. соответствующий синтаксис для declaration в статьях Общие сведения об объявлениях или Краткие сведения о синтаксисе языка C для получения сведений о синтаксисе, который ссылается на declarator.

Если декларатор состоит из неизмененного идентификатора, объявляемый элемент имеет базовый тип. Если звездочка (*) отображается слева от идентификатора, тип изменяется на тип указателя. Если после идентификатора следуют квадратные скобки ( [ ] ), тип изменяется на тип массива. Если после идентификатора указываются скобки, тип меняется на тип функции. Дополнительные сведения об интерпретации приоритетности в пределах объявлений см. в статье Интерпретация сложных операторов объявлений.

Каждый декларатор объявляет по крайней мере один идентификатор. Декларатор должен включать описатель типа, чтобы называться полным объявлением. Описатель типа предоставляет тип элементов типа массива, тип объекта, к которому относится тип указателя, или тип возвращаемого значения функции.

Объявления массивов и указателей более подробно обсуждаются далее в этом разделе. В следующем примере проиллюстрировано несколько простых форм деклараторов.

int list[20]; // Declares an array of 20 int values named list
char *cp;     // Declares a pointer to a char value
double func( void ); // Declares a function named func, with no
                     // arguments, that returns a double value
int *aptr[10]; // Declares an array of 10 pointers

Блок, относящийся только к системам Microsoft

Компилятор Microsoft для C не ограничивает число операторов объявления, которые могут изменять арифметические, структурные типы или типы объединений. Это число ограничивается только объемом доступной памяти.

Завершение блока, относящегося только к системам Майкрософт

См. также

Объявления и типы