Деклараторы и объявления переменных
В остальной части данного раздела описывается форма и значение объявлений для переменных типов, включенных в этот список. В частности, в остальных разделах объясняется, как объявить следующие объекты.
Тип переменной |
Описание |
---|---|
Однозначные переменные целочисленного типа или типа с плавающей запятой |
|
Переменные, состоящие из коллекции элементов того же типа |
|
Переменные, указывающие на другие переменные и содержащие расположения переменных (в виде адресов) вместо значений |
|
Простые переменные с целочисленным типом, содержащие одно значение из набора именованных целочисленных констант |
|
Переменные, состоящие из коллекции значений, которые могут иметь разные типы |
|
Переменные, состоящие из нескольких значений разных типов, занимающих одинаковое пространство для хранения |
Декларатор — это часть объявления, задающая имя, которое нужно вставить в программу. Он может включать модификаторы, например * (указатель на), и любые ключевые слова соглашения о вызовах Microsoft.
Блок, относящийся только к системам Microsoft
В деклараторе
__declspec(thread) char *var;
char — это описатель типа, __declspec(thread) и * — это модификаторы, а var — это имя идентификатора.
Завершение блока, относящегося только к системам Microsoft
Деклараторы используются для объявления массивов значений, указателей на значения и функций, возвращающих значения заданного типа. Деклараторы отображаются в объявлениях массивов и указателей, описанных далее в этом разделе.
Синтаксис
declarator:
указатель необ прямой-деклараторпрямой-декларатор:
identifier( декларатор )
прямой-декларатор [ константное-выражение необ ]
прямой-декларатор**(** список-типов-параметров**)**
прямой-декларатор ( список-идентификаторов необ )
pointer:
*****список-квалификаторов-типа необ*****список-квалификаторов-типа необ pointer
список-квалификаторов-типа:
квалификатор-типасписок-квалификаторов-типа квалификатор-типа
Примечание
См. соответствующий синтаксис для 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 не ограничивает число деклараторов, которые могут изменять арифметические, структурные типы или типы объединений. Это число ограничивается только объемом доступной памяти.
Завершение блока, относящегося только к системам Microsoft