В предыдущей части: Обсуждалось, как можно содержимое одной структуры подменить содержимым другой. Это делалось через "указатель-хак", но в языке есть и легитимный способ. Объединения Объединение (union) позволяет объединить разные описания для одних и тех же данных. К примеру, структуру цветного пиксела можно описать так: struct Pixel { int value; }; Технически это даже не структура, так как она содержит всего одно поле. Но оставим её для примера. Ещё одну структуру можно описать так: struct Pixel { char r; char g; char b; char a; }; Это тоже описание цвета пиксела, но разбитого на компоненты RGBA. Работая с видеопамятью, в некоторых случаях было бы удобно обращаться к общему значению pixel.value, а в некоторых – к индивидуальным компонентам pixel.r, pixel.g, и т.д. Объединение позволяет это сделать: Объявление объединения похоже на структуру, но есть нюанс. Каждое поле в объединении описывает не отдельную порцию данных, а альтернативное представление тех же самых данных. Именно поэто