Объединения (смеси)

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

union [<тип>]{

описание элемента 1;

описание элемента 2;

...................;

описание элемента n;

}[<список-элементов>];

Пример.

union{

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

float side[2]; // Прямоугольник

float triangle[3]; // Треугольник

float point[2]; // Точка

}GeomFig;

В каждый момент времени в памяти, отведенной объединению, может находиться только один элемент, т.е. память используется элементами поочередно. Размер отводимой памяти определяется размером наиболее "длинного" элемента. В примере это "треугольник" – 12 байтов.

Заметим, что обобщением понятия объединения является тип данных variant в языке Basic.