Язык программирования C

Скачать в pdf «Язык программирования C»
А.8.5. Описатели


Описатели имеют следующий формальный синтаксис:


описатель:


указа тельнеоб собственно-описа тель


собственно-описатель: идентификатор ( описатель )


собственно-описатель [ константное-выражениенеоб ] собственно-описатель ( список-типов-параметровсобственно-описатель ( список-идентификаторовнео0 )


указатель:


*    список-модификаторов-типанво0


*    список-модификаторов-типанеоЬ указатель


список-модификаторов-типа: модификатор-типа


список-модификаторов-типа модификатор-типа


Построение описателей имеет много общего с построением обращений по указателям, вызовов функций и обращений к элементам массивов; в частности, группировка выполняется по тем же правилам.

А.8.6. Смысл и содержание описателей


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


Если рассматривать только те части спецификаторов объявлений и описателей, которые определяют тип (см. раздел А.8.2), то объявление имеет общий вид “Т D”, где Т — тип, a D — описатель. Тип, придаваемый идентификатору в различных формах описателя, можно описать индуктивно через эту запись.


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


В объявлениях Т D, где D имеет показанную ниже форму, тип идентификатора в D1 будет тем же, что и в D:


( D1 )


Скобки не изменяют тип, но могут повлиять на результаты его привязки к идентификаторам в сложных описателях.


А.8.6.1. Описатели указателей

Скачать в pdf «Язык программирования C»