Язык С

       

Имена типов


В двух случаях (для явного указания типа преобразования в конструкции перевода и для аргументов операции SIZEOF) же- лательно иметь возможность задавать имя типа данных. Это осуществляется с помощью "имени типа", которое по существу является описанием объекта такого типа , в котором опущено имя самого объекта.

Имя типа: спецификатор-типа абстрактный-описатель абстрактный-описатель: пусто (абстрактный-описатель) * абстрактный описатель абстрактный-описатель () абстрактный-описатель [константное выражение необ]

Во избежании двусмысленности в конструкции

(абстрактный описатель)

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

INT INT * INT *[3] INT (*)[3] INT *() INT (*)()

именуют соответственно типы "целый", "указатель на целое", "массив из трех указателей на целое", "указатель на массив из трех целых", " функция, возвращающая указатель на целое" и "указатель на функцию, возвращающую целое".



    Содержание раздела