Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lec15

.pdf
Скачиваний:
6
Добавлен:
12.02.2015
Размер:
425.66 Кб
Скачать

Возможный результат выполнения программы.

Смеси (объединения).

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

Схема размещения объединения в памяти.

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

Пример: CC.ii=15;

с помощью конструкций CC.hh[0], CC.hh[1] можно получить внутренние байты числа 15.

Размеры участка памяти отводимые для объединения определяются размером самого большого из элементов.

Пример программы.

Печать scan и ASKII кодов клавиатуры.

В MS-DOS принято, что каждое нажатие на любую клавишу клавиатуры приводит к занесению в буфер клавиатуры 2 - х байт, младший из которых по адресу содержит ASKII код клавиши, а старший содержит скэнкод клавиши. Функция bioskey(0) при пустом буфере ожидает нажатия любой клавиши, если в буфере уже есть коды, то функция выбирает из буфера очередной двубайтовый код и возвращает его в виде целого числа.

Пример работы программы.

Битовые поля.

Основные особенности.

IБитовое поле может быть только элементом структуры или объединения и вне этих типов не встречается.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]