8.12. Объединения

 

Объединения - это составной объект, в который входят компоненты любых типов, за исключением функций, и  в каждый момент времени может использоваться только один из его компонентов. Описание объединения имеет вид:

 

union {

                   Описание компонента1;

                   Описание компонента2;

                            …

                   Описание компонентаn;

          };

 

Для каждого из этих компонентов выделяется одна и та же область памяти, т. е. они перекрываются. Хотя доступ к этой области памяти возможен с использованием любого из компонентов, компонент для этой цели должен выбирается так, чтобы полученный результат не был бессмысленным.

С объединение может быть связано имя так же как и со структурой.

Пример

 

union geom._fig {

                   float radius;//окружность

                   floata[2];//прямоугольник

                   intb[3];//треугольник

                   } ;

В этом примере не лишена смысла лишь обработка только активного компонента, т. е. компонента, который последним получил свое значение. Например, после присваивания значения компоненту radius, не имеет смысла обращение к массиву b[3].

С объединением работают также как и со структурой можно использовать только 2 операции. ‘.’ (операция указания члена) и ‘&’(взятие адреса).

 

 

К оглавлению

Назад к разделу "8.11. Структуры"

Вперед к разделу "8.13. Определение типа данных"