Смесь - это разновидность структуры, которая может хранить (в разное время) о6ъекты различного типа и размера . В результате появляется возможность работы в одной и той же области памяти с данными различного вида. Для описания смеси используется ключевое слово union, а соответствующий синтаксис аналогичен синтаксису структуры.
Пусть задано объявление:
union r { int ir; float fr; char сr; } z;
Здесь ir имеет размер 2 байта, fr - 4 байта и сr - 1 байт. Для z будет выделена память достаточная, чтобы сохранять самый большой из трех приведенных типов. Таким образом, размер z будет 4 байта. В один и тот же момент времени в z может иметь значение только одна из указанных переменных (ir, fr, сr). Пример:
#include <stdio.h>
union r{ int ir; float fr; char cr;} z;