Объединение (структура данных)В информатике объединение (англ. union) представляет собой значение или структуру данных, которое может иметь несколько различных представлений. В сильно типизированных языках тип объединение соответствует понятию тип-сумма из теории типов, то есть требует использовать разные конструкторы для значений разных типов. В слабо типизированных языках, таких как C и C++, тип объединение реализует каламбур типизации, то есть обеспечивает интерпретацию одного и того же значения в соответствии с разными типами. В зависимости от конкретного языка и типа, значение объединения может использоваться в таких операциях как присваивание или сравнение в отрыве от информации о конкретном типе или с требованием её наличия. Пример на Сиunion 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