Структури с битови полета - 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: