ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Лекция 11. Записи и объединенияДекларация и инициализация записей Описание структурных переменных выполняется в два шага: · Задание шаблона. · Собственно описание переменных. В пределах своей области известности имя шаблона должно быть уникальным. Допускается определение только одного шаблона в своей области известности без имени. Имена шаблонов сравниваются компилятором только между собой. Имя шаблона может совпадать с метками или именами переменных и это не является ошибкой. Синтаксис шаблона: struct[имя_шаблона]{тип1 имя_поля1; тип2 имя_поля2; ……………. типN имя_поляN;}; имя_поля может быть задано списком Пример struct book{char author[20]; char title[50]; int year; float price;}; Память не резервируется. Информация о типе попадает в таблицы компилятора. Шаблон, описанный в пределах блока {} не видим извне, а только внутри блока. Как только задан шаблон, то может описываться структурная переменная. Пример Описание структурной переменной может быть совмещено с заданием шаблона struct book{ char author[20]; char title[50]; int year;float price; }; first_book, child_book Здесь first_book, child_book структурные переменные struct book third_book;
Для инициализации записей используется список инициализации, в котором указываются значения для любого поля. Пропуск значения указывается запятой или отсутствием элементов хвоста списка инициализации. Для вложенных структур применяются подсписки вида {…} внутри списков {…}. Пример struct book first_book = {“Чень Ч., Ли Р.”, “Математическая логика …”, 1983, 2.20}, child_book = {“”, “Сказания и мифы”, 1984, };
Некоторые поля структурной переменной в свою очередь могут быть структурными переменными и тогда в списке инициализации должны появиться для этих полей вложенные скобки: {…, {…}, …}. Для упрощения описания структурных переменных можно использовать оператор typedef (описание собственного типа). На самом деле вводится только имя типа. Пример typedef struct UDC{char class, subclass; int number;} T_UDC; typedef struct { char author[20]; char title[50]; int year; float price} T_BOOKS; В данном примере UDC имя структуры, во втором примере имя шаблона не указано. T_UDC и T_BOOKS имена новых структурных типов. Определим новый тип с двумя вложенными структурными полями: typedef struct {T_UDC idinf; T_BOOKS maininf;} MY_BOOKS; Объявление переменных в программе можно сделать следующим образом: MY_BOOKS first_book, second_book;
Ограничение: Структура не может вкладываться сама в себя
Контрпример. Ошибка! struct book { struct book my_own; char author[20]; char title[50]; int year; float price; }; Не нашли, что искали? Воспользуйтесь поиском:
|