Понедельник, 15.06.2026
Шпаргалка :)
Меню сайта
Категории раздела
Мои статьи [172]
Наш опрос
Оцените мой сайт
Всего ответов: 259
Форма входа
Главная » Статьи » Мои статьи

2.10. Объявление типа (объявление тега, typedef, абстрактные имена типов).

Объявление тега

Объявление типа структуры, объединения или перечислимого типа имеет такую же синтаксическую форму, как и объявление переменной этих типов, однако в объявлении типа идентификатор переменной (а в общем случае описатель) опущен. Именем типа структуры, объединения или перечислимого типа является тег. Тег – идентификатор, именующий структуру, которая объявляется списком объявления элементов. Описание специфицирует либо переменную типа struct, либо массив, либо указатель на структуру данного типа, либо объект, являющийся комбинацией вышеперечисленного. Например:

struct [<тег>] {<список-объявлений-элементов>} <описатель> [,<описатель>:];

Объявления typedef

Синтаксис: typedef <спецификация типа> <описатель> [,<описатель>:];

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

Абстрактные имена типов

Иногда возникает необходимость специфицировать некоторый тип данных без присвоения ему идентификатора и без объявления какого-либо объекта. Такая конструкция, определяющая тип без имени, называется абстрактным именем типа. Абстрактные имена типов используются в трех контекстах: в списках типов аргументов при объявлении функций, в операции приведения типа и в операции sizeof. Абстрактными именами для базовых, перечислимых, структурных типов и объединений являются просто соответствующие им спецификации типа. Абстрактные имена для типов указатель, массив и функция задаются следующей синтаксической конструкцией:

<спецификация типа> <абстрактный описатель>

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

(int * - абстрактное имя для указателя на тип int, int (*) [5] – на массив из пяти элементов типа int, int (*) (void) – на функцию, не требующую аргументов и возвращающую значение типа int).

Категория: Мои статьи | Добавил: Eskander (09.06.2010)
Просмотров: 598 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2026
    Бесплатный конструктор сайтовuCoz