А так задумано что ты хочешь принять на 1 байт меньше size?
У тебя преинкремент ++i
а разве он как-то влияет в цикле?
хз. Щас попробую поменять что-нибудь тут
насколько мне помнится - сначала инициализация, потом проверка условия, потом блок цикла выполняется, а затем операция вычисления счётчика, затем уже снова проверка условия
+ ты #pragma pack используешь?
я не умею этим пользоваться даже
а, ну тогда у тебя структура неупакованная
#pragma pack(push, 1) struct { ... }; #pragma pack(pop) Попробуй перед и после объявления структуры добавить.
а можно и мне объяснить заодно - зачем паковать структуру?
У тебя в памяти поля структуры по дефолту будут выравниваться по максимальному размеру типа в ней.
с фига ли в восьмибитках он будет по другому паковать структуру?
Наверное, потому что GCC следует стандарту Си, не так ли?
Вроде в стандарте нет такого. UB. На практике просто выравнивает по разрядности процессора.
смотри: я вот это: for (register uint8_t i = 0; i < size; ++i) заменил вот на это: for (register uint8_t i = 0; i <= size; ++i) и теперь он не отбрасывает ничего! Все работает!
Обсуждают сегодня