Объединение.
Объединение имеет тот же синтаксис, что и структуры:
union[<идентификатор типа>]{<список полей>}<идентификатор>[ ,<идентификатор>]
Объединение в отличии от структуры позволяет размещать в одной и той же области памяти данные различных типов. В каждый момент времени в памяти может быть размещено значение только одного, включенного в объединение типа. Размер памяти, требуемый для размещения объединения, определяется размером наибольшего поля.
Для создания эквивалента записи с вариантами можно использовать объединение внутри структур. Для этого в структуру включают поле, позволяющее узнавать, какое из полей объединения активно в каждом конкретном случае.
Объявление Typedef. Zpsrf С используется для определения других типов:
Синтаксис объявления:
tipedef<спецификация типа> <имя типа>
Пример:
1) typedef unsigned char byte;
byte i, j;
2) typedef struct
{
char name[20];
int age;
}stud;
stud st;
После объявления tipedef имя типа и спецификация типа становятся синонимами и могут быть использованы в последующих объявлениях переменных.
12.3 Перечислимый тип данных в языках PASCAL и C.
Перечислимый тип данных используется для повышения наглядности программ.
Иногда при разработке программ приходится иметь дело с различными понятиями, каждое из которых включает в себя множество частных случаев.
Например: месяц, день недели, сезон, цвет и т.д.
При решении на компьютере задач, связанных с использованием подобных понятий, их отдельные частные случаи иногда кодируются в цифровой форме.
Например: цвет (белый, черный, голубой, зеленый)
1 2 3 4
Пусть переменная b – цвет, и нужно проверить является ли цвет зеленым if b = 4 ………..
Гораздо удобнее записать это условие в естественной форме: if b = green ……..
Переменная b во втором случае должна быть перечислимого типа.
Синтаксис объявления перечислимого типа в языке PASCAL:
type <имя типа>=(<список перечислений>);
Пример: type color = (while, black, blue, green)
Var b : color;
Замечание: В языке PASCAL имеется стандартный перечислимый тип – тип Boolean = (true, false). Каждая из констант перечислимого типа имеет порядковый номер, счет начинается с ноля. Упорядоченность констант перечислимого типа позволет применить к ним операции сравнения <, <=, а также стандартные функции ord – код, pred - предыдущий, succ - последующий
Синтаксис объявления перечислимого типа в языке C:
1) enum[<имя типа>]{<список перечислений>}<идентификатор пер.>[ ,<идентификатор пер.>]
2) enum<имя типа><идентификатор пер.>[ ,<идентификатор пер.>]
Во втором случае с помощью <имени типа> мы ссылаемся на перечислимый тип, объявленный раньше. Список перечислений – набор имен констант.
<идентификатор>[=<константное выражение>]
Если константное выражение не заданно, то первый элемент получает значение 0, второй – 1 и т. д.. Знак =<константное выражение> прерывает эту последовательность. Следующий элемент, если не заданно константное выражение, принимает значение <константное выражение>+1.
Примеры:
1) enum color{white, black, blue, green}col;
0 1 2 3
2) enum color{white, black=5, blue=6, green=2, red=5}col;
Основная причина использования перечислимого типа – это улучшение читаемости программы.
Замечание: В Си и Си++ по – разному обрабатываются перечислимые типы. Язык Си считает перечислимые типы, эквивалентом целых типов, допуская присвоение величины одного типа, величине другого. Си++ считает перечислимые типы особыми пользовательскими типами, требующими явного преобразования типа.
12.4 Ограниченный тип как средство повышения надежности программ.
В Паскале значительное внимание уделено вопросу повышения надежности программ, т.е. своевременному выявлению различного рода ошибок в программе.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.