Работа с указателями. Необходимо чтобы при изменении битов в битовом поле менялась и переменная - C (СИ)
Формулировка задачи:
Здравствуйте. Прошу помощи в решении следующей задачи:
Имеем переменную int16 и 16-битное битовое поле. Необходимо чтобы при изменении битов в битовом поле менялась и переменная, соответственно при изменении переменной менялись биты битового поля.
Тоесть нужно что-то вроде &BPole=&Flags1.
Битовое поле и переменная объявлены так:
struct Flags16BitsStruct {
unsigned int bit0 : 1;
unsigned int bit1 : 1;
unsigned int bit2 : 1;
unsigned int bit3 : 1;
unsigned int bit4 : 1;
unsigned int bit5 : 1;
unsigned int bit6 : 1;
unsigned int bit7 : 1;
unsigned int bit8 : 1;
unsigned int bit9 : 1;
unsigned int bit10 : 1;
unsigned int bit11 : 1;
unsigned int bit12 : 1;
unsigned int bit13 : 1;
unsigned int bit14 : 1;
unsigned int bit15 : 1;
};
Flags16BitsStruct Flags1;
int BPole;Решение задачи: «Работа с указателями. Необходимо чтобы при изменении битов в битовом поле менялась и переменная»
textual
Листинг программы
Flags16BitsStruct *Flags1=(Flags16BitsStruct *)&arr[31];
Объяснение кода листинга программы
- Объявляется структура
Flags16BitsStructс двумя полями:byteиbit. - Переменная
Flags1типаFlags16BitsStructинициализируется указателем на элемент массиваarrс индексом 31. - В поле
byteпеременнойFlags1записывается значение 0. - В поле
bitпеременнойFlags1записывается значение 1.