Объединение (структура данных)
Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей.
|
Объединение представляет собой структуру, члены которой расположены по одному и тому же адресу. Поэтому размер объединения равен размеру его наибольшего члена. В любой момент времени объединение хранит значение только одного из членов.
Пример на 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;
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....