ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 июля
1234185 Топик полностью
POV (25.08.2022 11:45, просмотров: 139) ответил VLLV на ИАР 8 и ИАР 9 упаковывает структуру в разное количество байт: 4 и 2. Где накосячено?
Кейл51, например, произвольно внутри структуры битовые поля тусовал как ему удобнее. Может и тут то же самое плюс выравнивание до удобной битности... 

Вот в таком кейл меня огорчил - он разметил все так чтобы битовые поля умещались в две группы по 16 бит. И при смене версии компилятора на более свежий, который смог сильно ужать код, оно по-иному оказалось.


typedef struct
{
 unsigned Year: 7;
 unsigned Month: 4;
 unsigned Day: 5;
 unsigned Hour: 5;
 unsigned Minute: 6;
 unsigned Second: 5;
} TDateTime;


После всех ковыряний вот так поля разместил чтобы результат оставался одинаковым при всех оптимизациях

typedef struct
{
 unsigned Day: 5;
 unsigned Month: 4;
 unsigned Year: 7;
 unsigned Second: 5;
 unsigned Minute: 6;
 unsigned Hour: 5;
} TDateTime;