ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
1020540 Топик полностью
Гyдвин, волшебник (24.07.2020 09:45, просмотров: 620) ответил SciFi на ИМХО, когда начинаются pragma pack и align, погромизд сам расписался в том, что он будет во всём виноват, и стандарт не помощник.
Align там не от балды - buffer[] используется для USB хоста - там должен быть выровненный адрес для аппаратного DMA в LPC17. Align для структуры - просто мои опыты в попытке разобраться где собака порылась - в испытанном годами коде его нет. К pragma pack(1) тоже нет претензий - он в моем коде для Cortex живет десяток лет и делает свое дело - упаковывает структуру "без дырок". Для того и добавлен в Keil. Но вот новый "шибко грамотный" компилятор, увидев int32 в структуре и 

сдуру реши решивший "оптимизировать", когда ему явно указали тип указателя void* или U8*, косяк компилятора - должен делать то, что от него требуют... Как уже сказал выше, с библиотекой "microLIB" все работает корректно - согласно стандарту.