Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Вторник
22 апреля
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Средства и методы разработки
1389280
Топик полностью
POV
(02.01.2024 22:02, просмотров: 133)
ответил
VladislavS.
на
Поля сделайте uint32_t и всё будет норм.
Видимо да. "char" там всё и попортило т.к. размещение переменной разделилось между двумя байтами.
Ответить
Естественно. Он что можно по char упаковал, а настоящие char отдельно положил. Оптимизировал и sizeof(Result_t)==6 получил. А вот если его в uint32_t попросить всё утоптать, то будет желаемое sizeof(Result_t)==4.
-
VladislavS.
(02.01.2024 22:07
)
И не только размер не тот, но и порядок полей изменён ради этой упаковки в байты. Потому надо в одной переменной uint32_t поля выделять, чтобы оно полряд шло как олписано, если это куда-то передается (регистрации модбаса например битовыми полями представлен).
-
POV
(02.01.2024 22:12
)