- Объединение (компьютер)
-
Объединение представляет собой структуру, члены которой расположены по одному и тому же адресу. Поэтому размер объединения равен размеру его наибольшего члена. В любой момент времени объединение хранит значение только одного из членов.
Пример на C++
union Some { int i; double a; };
Это объединение хранит либо целое число (переменная i), либо число с плавающей точкой (переменная a). Поскольку объединение это вид структуры, то в Си мы будем обращаться к ней также как и к структуре т.е. через символ "->", при использовании указателя, или "." при использовании обычной переменной. Можно усложнить пример, сделав объединение частью структуры, тогда обращаться надо будет уже через структуру, то есть:
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;
Wikimedia Foundation. 2010.