КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Декларация структурного типа данных
Понятие структуры Структуры и объединения В реальных задачах информация, которую требуется обрабатывать, может иметь достаточно сложную структуру. Для ее адекватного представления используются типы данных, построенные на основе базовых типов данных, массивов и указателей. Языки высокого уровня позволяют программисту определять свои типы данных и правила работы с ними, т.е. типы, определяемые пользователем. В языке Си к ним относятся структуры, объединения и перечисления. Рассмотрим их более подробно.
Структура – это составной объект языка Си, представляющий собой совокупность логически связанных данных различных типов, объединенных в группу под одним идентификатором. Данные, входящие в эту группу, называют полями. Определение объектов типа структуры производится за два шага: – декларация структурного типа данных, не приводящая к выделению участка памяти; – определение структурных переменных объявленного структурного типа с выделением для них памяти. Структурный тип данных задается в виде шаблона, общий формат описания которого следующий: struct ID структурного типа { описание полей }; Атрибут «ID структурного типа», т.е. ее идентификатор является необязательным и может отсутствовать. Описание полей производится обычным способом: указываются типы и идентификаторы. Пример определения структурного типа: Необходимо создать шаблон, описывающий информацию о студенте: номер группы, ФИО и средний балл. Один из возможных вариантов: struct Stud_type { char Number[10]; char Fio[40]; double S_b; }; Поля одного типа при описании можно объединять в одну группу: struct Stud_type { char Number[10], Fio[40]; double S_b; }; Размещение данного объекта типа Stud_type в ОП схематически будет выглядеть следующим образом:
Структурный тип данных удобно применять для групповой обработки логически связанных объектов. Иногда параметрами таких операций могут выступать адрес и размер (либо тип) структуры. Примеры подобных групповых операций: - захват и освобождение памяти для объекта; - запись и чтение данных, хранящихся на внешних носителях как физические и/или логические записи с известной структурой (при работе с файлами). Т.к. одним из параметров групповой обработки структурных объектов является размер, нужно быть осторожным, если декларировать поле структуры как объект переменной размерности (например, как тип String), т.к. в этом случае "переменная" его часть будет храниться отдельно от остальной структуры, и некоторые операции со структурными данными будут не корректны, например: struct Stud1 { String Number, fio; double S_b; }; Хотя само такое определение структуры вполне допустимо, но не все операции со структурами, описанные ниже (например, запись целой структуры в файл), в применении к нему дадут верный результат. Некоторые особенности: 1) поля структуры, как правило, имеют разный тип, кроме функций, файлов и самой этой структуры; 2) поля не могут иметь атрибут, указывающий «класс памяти», данный атрибут можно определить только для всей структуры; 3) идентификаторы (ID) как самой структуры, так и ее полей могут совпадать с ID других объектов программы, т.к. шаблон структуры обладает собственным пространством имен; 4) при наличии в программе функций пользователя шаблон структуры рекомендуется поместить глобально перед определениями всех функций, и в этом случае он будет доступен всем функциям.
Дата добавления: 2014-01-05; Просмотров: 407; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |