Иногда возникает необходимость располагать в одной области памяти программные объекты разных типов и даже разной организации, например, скалярные переменные и массивы. Для этой цели используется конструкция, называемая объединением или смесью, правило объявления которой имеет вид:
union [<тип>]{
описание элемента 1;
описание элемента 2;
...................;
описание элемента n;
}[<список-элементов>];
Пример.
union{
float radius; // Окружность
float side[2]; // Прямоугольник
float triangle[3]; // Треугольник
float point[2]; // Точка
}GeomFig;
В каждый момент времени в памяти, отведенной объединению, может находиться только один элемент, т.е. память используется элементами поочередно. Размер отводимой памяти определяется размером наиболее "длинного" элемента. В примере это "треугольник" – 12 байтов.
Заметим, что обобщением понятия объединения является тип данных variant в языке Basic.