Об'єднання (структура даних)В інформатиці об'єднання (англ. union) є значенням або структурою даних, яке може мати кілька різних подань. У сильно типізованих мовах тип об'єднання відповідає поняттю з теорії типів тип-сума, тобто вимагає використовувати різні конструктори для значень різних типів. У слабко типізованих мовах, як-от C і C++, тип об'єднання реалізує каламбур типізації, тобто забезпечує інтерпретування одного й того ж значення відповідно до різних типів. Залежно від конкретної мови та типу, значення об'єднання може використовуватися в таких операціях як присвоєння чи порівняння у відриві від інформації про конкретний тип або з вимогою її наявності. Приклад на Cunion Some {
int i;
double a;
};
Це об'єднання зберігає або ціле число (змінна struct STRX {
int i;
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;
Див. також
|
Portal di Ensiklopedia Dunia