|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Поля бітів
Об’єднання Об’єднання – це засіб, який дозволяє запам’ятовувати різні типи даних в одній області пам’яті. Об’єднання встановлюють таким самим чином, як і структури. Визначається шаблон об’єднання і змінні об’єднання. Приклад шаблону: union holdem {int digit; double bigfl; char letter; }; Приклад визначення змінних об’єднання типу holdem
union holdem bit; union holdem save[10]; union holdem *pu;
Перший опис створює одну змінну bit. Компілятор виділяє достатньо пам’яті для розміщення самої більшої по довжині змінних з шаблону. В цьому випадку найбільшу довжину має змінна типу double – 8 байтів. Масив save мав би 10 елементів, кожний по 8 байтів, pu – вказівник на об’єднання. Використання об’єднання bit.digit=23; (використовується 2байти) bit.bigfl=20; (8байтів) bit.digit=’h’; (1байт)
При використанні об’єднання необхідно слідкувати за типом даних, який в даний момент записаний в об’єднанні.
Помилкове використання об’єднання bit.letter=’A’; (використовується 2байти) fl=3.0*bit.bigfl; Помилка полягає в тому, що об’єднання має значення типу char, а наступний оператор використовує об’єднання як число типу float. Можна використовувати операцію –> з об’єднаннями таким же чином, як і з структурами: pu=&bit; x=pu–>digit; ~ x=bit.digit; Поля бітів Бітові поля (bit fields) - особливий вид полів структури. Вони дають можливість задавати кількість бітів, в яких зберігаються елементи цілих типів. Бітові поля дозволяють раціонально використовувати пам'ять за допомогою зберігання даних в мінімально потрібній кількості бітів.
Робота з полями бітів залежить від конкретної ЕОМ і реалізації транслятора.
Приклад: struct polebit { unsigned i:2; unsigned j:6; int 3; - без імені; unsigned k:3; unsigned l:2; } mypole;
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |