Об'єднання (union)
Запис різних байтів даних
Об'єднання корисні в задачах низькорівневого програмування, що стосуються запису в одну і ту саму ділянку пам'яті, але різних порцій даних в виділеному відрізку даних, наприклад:
union item { // елемент має довжину в 16-біт short theItem;
// в представленні little-endian lo доступається до молодших 8-біт - // hi, до верхніх 8-біт struct { char lo; char hi; } portions;
Назва структури, що оголошена у полі може бути опущена, бо вона не використовується. Все що має бути явно назване, це частини, до яких ми маємо намір здійснювати доступ, тобто сам екземпляр структури, portions.
item tItem; tItem.theItem = 0xBEAD; tItem.portions.lo = 0xEF; // елемент тепер дорівнює 0xBEEF
Використовуючи цю структуру ми можемо модифікувати старші і молодші байти поля theItem, без втручання у інші байти даних.