НОУ ІНТУІТ, Лекція, Похідні типи даних мови C
Об'єднання
Об'єднання дозволяє розміщувати в одному місці пам'яті дані, доступ до яких здійснюється через змінні різних типів.
Використання об'єднань значно економить пам'ять, що виділяється під об'єкти.
Під час створення змінної типу об'єднання пам'ять під всі елементи об'єднання виділяється з розміру найбільшого його елемента. У кожний окремий час об'єднання використовується для доступу тільки до одного елемента даних, що входять до об'єднання .
Так, компілятор Visual C++ виділить 4 байти під наступне об'єднання:
Об'єднання, як і структури, можуть містити бітові поля.
Доступ до елементів об'єднання, аналогічно до доступу до елементів структур, виконується за допомогою операторів . та -> .
Елементи об'єднання що неспроможні мати модифікаторів доступу і завжди реалізуються як загальнодоступні ( public ).
Перерахування
Перерахування, абоперелічуваний типвизначає безліч, що складається зі значень, зазначених через кому у фігурних дужках.
Перелік задає для кожної мнемонічної назви у множині, що вказується, свій індекс.
Перелік може мати такий формальний опис:
Перерахований тип описує безліч, що складається з елементів-констант, іноді званихнумераторамиабоіменованими константами.
Значення кожного нумератора визначається як значення типу int. За замовчуванням перший нумератор визначається значенням 0, другий значенням 1 і т.д. Для ініціалізації значень нумератора не з 0, а з іншого цілого значення, слід привласнити це значення першому елементу списку значень перерахованого типу.
Дляперелічуваного типу існує поняття діапазону значень, що визначається як діапазон цілих значень, які може приймати змінна даного перерахованого типу.
Для такого типу можна створювати покажчики.