Структури с битови полета - studopediya

С език позволява използването на структурите на специален тип полета - малко. Използването им дава възможност за достъп до отделни битове на по-големи обекти (байтове, думи). област бит (битове или поле) може да бъде обявена само като формовани компоненти структура:

Името на вида. ширина; където

тип - спецификатор тип число (междинно съединение - неподписан -bezznakovy знак.);

име - името на полето, което може да се пропусне;

ширина - размера на поле в бита.

Битови полета в структурата са описани от ниско, за да високо. тип Int MSB Полето знак се използва за съхраняване на знака. Например, такава ширина поле на 1 бит може да включва само стойностите 0 и 1, тъй като всяка ненулева стойност се тълкува като -1.

Пример. Помислете за работата на обработка на битови полета my_struct структура на програмата, описващ машина словото на два байта.

Int аз. 2; / * Незначителните битове на думи * /

неподписан й. 2; / * Неподписан поле * /

вътр. 2; / * Без име поле * /

вътр к. 2; / * Невярно е подписан * /

вътр сляпо. 8; / * MSBs от думи * /

> My_struct; / * Структура променлива * /

clrscr (); / * Clear екран * /

my_struct.dummy = 0; / * Попълнете структурата на полетата * /

ФОРМАТ ( "структурна променлива стойност (16 chnoe) =% х \ п",
my_struct);

ФОРМАТ ( "индивидуални области. I =. J =. = к. \ N",

my_struct.i, my_struct.j, my_struct.k);

Значение структурна променлива (16 chnoe) = изд

Отделните полета. I = 1 J = 3 к = -1

Първият номер се получава в резултат на отпечатване стойността в 16-матрични нотация разпределени за структурна променлива my_struct. Ако си представим това число в двоична система и налагане поле малко, получаваме местоположението на битови полета, показани в диаграмата по-долу. За празен достъп поле на разположение.

Структурата на верига променлив my_struct: