- Объединение (структура данных)
-
Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей.Объединение (англ. union) в программировании — структура данных, члены которой расположены по одному и тому же адресу. Поэтому размер объединения равен размеру его наибольшего члена. В любой момент времени объединение хранит значение только одного из членов.
Пример на C++
union Some { int i; double a; };
Это объединение хранит либо целое число (переменная i), либо число с плавающей точкой (переменная a). Поскольку объединение — это вид структуры, то в C и C++ к нему обращаются так же, как и к структуре: через символ «
->
» при использовании указателя, или «.
» при использовании обычной переменной.Можно усложнить пример, сделав объединение частью структуры, тогда обращаться надо будет уже через структуру, то есть:
struct STRX { int j; Some v, *w; } a, *b;
Рассмотрим способы обращения к объединению, заданные через указатели, переменные и смешанным образом:
a.v.i=123; b->v.i=123; a.w->i=123; b->w->i=123;
Есть возможность сделать объединение безымянным :
struct STRX { int j; union { int i; double a; }; } a;
При этом способ обращения меняется:
a.i=123; a.a=4.5;
Типы данных Неинтерпретируемые Числовые Целый • С фиксированной запятой • С плавающей запятой • Рациональный • Комплексный • Длинный • Интервальный
Текстовые Указатель Адрес • Ссылка
Композитные Алгебраический тип данных (обобщённый) • Массив • Ассоциативный массив • Класс • Список • Кортеж • Объект • Option type • Product • Структура • Множество • Объединение (tagged)
Другие Логический • Низший тип • Коллекция • Перечисляемый тип • Исключение • First-class function • Opaque data type • Recursive data type • Семафор • Поток • Высший тип • Type class • Unit type • Void
Связанные темы Абстрактный тип данных • Структура данных • Интерфейс • Kind (type theory) • Примитивный тип • Subtyping • Шаблоны C++ • Конструктор типа • Parametric polymorphism
Категория:- Концепции языков программирования
Wikimedia Foundation. 2010.