Мне нужно обновить следующую структуру, чтобы добавить уличную информацию в структуру.Добавление дополнительных бит в поле бит c
typedef struct address_tag {
union {
struct {
unsigned state : 20;
unsigned city : 10;
unsigned unused :2;
};
uint32_t address;
};
} defect_address_t;
Я использовал неиспользуемые биты и используются 2 бита для улицы:
typedef struct address_tag {
union {
struct {
unsigned state : 20;
unsigned city : 10;
unsigned street :2;
};
uint32_t address;
};
}address_t;
Проблема в том, что я должен зарезервировать 10 бит для улицы вместо 2. Есть ли способ, я могу добавить это сделать ? Я должен убедиться, что адрес 32 бита.
20 + 10 + 10 = 40. не может это сделать, если вы не потеряете бит из другого места или не увеличите допустимый размер ... –
Зачем вам нужно 20 бит для определения состояния? Это более 1 миллиона возможностей. –
Итак, вы предполагаете, что в городе есть не более 1024 улиц? Я не говорю, что вы не должны (и я не знаю, сколько улиц может иметь город), но предположение должно быть явным. –