-
- Самые-самые обёртки в lwip: SciFi(379 знак., 15.05.2024 14:51)
- Осталось найти компилятор, не понимающий #pragma pack(push, 1) - LightElf(15.05.2024 12:22)
- Keil - Vit(15.05.2024 14:01)
- Я кейл только для 8051 использую, а там оно не надо. - LightElf(15.05.2024 14:37)
- у меняя всё сильно хуже - составные части нескольких проектов берут
начало от проекта на IAR для C51, потом проекты разошлись на IAR
AVR и Keil C51, были ответвления на IAR MSP430, туча похожих на
ARM7TDMI, CM3, CM4, CM7, Xtensa, сейчас вот на CM23, причём на
разных компиляторах. приходится в этом
бардакезоопарке как-то разруливать... приходится где-то выбивать с ноги ручные выравнивания, где-то паковать... - Vit(15.05.2024 14:59)- Ну оно ж один раз поправить хедеры LightElf(106 знак., 15.05.2024 15:35)
- :) - Vit(15.05.2024 22:24)
- Ни-фи-га! Не один раз. Там поползень - птица такая... :) - bnb62(15.05.2024 15:51)
- На каждый новый проц/компилятор править, но в одном месте. - LightElf(15.05.2024 15:52)
- Ну оно ж один раз поправить хедеры LightElf(106 знак., 15.05.2024 15:35)
- у меняя всё сильно хуже - составные части нескольких проектов берут
начало от проекта на IAR для C51, потом проекты разошлись на IAR
AVR и Keil C51, были ответвления на IAR MSP430, туча похожих на
ARM7TDMI, CM3, CM4, CM7, Xtensa, сейчас вот на CM23, причём на
разных компиляторах. приходится в этом
- Вот Кейл POV(1 знак., 15.05.2024 14:36, картинка)
- в 6-м (Clang). но опять же, оно при наличии атрибутов просто
вредно. Vit(98 знак., 15.05.2024 14:48, ссылка, ссылка)
- Атрибуты менее портабельны, чем pragma. Но конечно лучше завести
какой compiler.h и в него все костыли понасувать. LightElf(1419 знак., 15.05.2024 15:42)
- в CMSIS суют тучу всего, но совместимого для всех известных ему
компилеров. там нет #pragma pack и _Pragma pack. не сростается
объять. именно из-за непортируемости. зато атрибуты __PACKED есть.
ЗЫ _Pragma это вааще лютый intrinsic. классный по сути, но насчет
портабельности не очень. - Vit(15.05.2024 22:22)
- _Pragma, кагбэ, в C99 присутствует. Уж не знаю куда больше портабельности. - LightElf(16.05.2024 20:30)
- в CMSIS суют тучу всего, но совместимого для всех известных ему
компилеров. там нет #pragma pack и _Pragma pack. не сростается
объять. именно из-за непортируемости. зато атрибуты __PACKED есть.
ЗЫ _Pragma это вааще лютый intrinsic. классный по сути, но насчет
портабельности не очень. - Vit(15.05.2024 22:22)
- Атрибуты менее портабельны, чем pragma. Но конечно лучше завести
какой compiler.h и в него все костыли понасувать. LightElf(1419 знак., 15.05.2024 15:42)
- в 6-м (Clang). но опять же, оно при наличии атрибутов просто
вредно. Vit(98 знак., 15.05.2024 14:48, ссылка, ссылка)
- Я кейл только для 8051 использую, а там оно не надо. - LightElf(15.05.2024 14:37)
- Keil - Vit(15.05.2024 14:01)
- Я использую исключительно GCC, и там можно использовать атрибут для
конкретной структуры. Теоретически, можно сделать структуру из
нескольких вложенных структур, часть которых будет упакованными,
часть - нет. Использую упакованные когда нужно передать по каналам
связи или сохранить в изнашиваемую память. - Nikolay_Po(15.05.2024 11:16)
- вот эти __PACKED_STRUCT и т.п. это обертки для атрибутов, но не для
прагмы - Vit(15.05.2024 13:48)
- Для прагмы есть _Pragma - LightElf(15.05.2024 14:33)
- костыль на костыле и костылём погоняет. - Vit(15.05.2024 14:43)
- Для прагмы есть _Pragma - LightElf(15.05.2024 14:33)
- вот эти __PACKED_STRUCT и т.п. это обертки для атрибутов, но не для
прагмы - Vit(15.05.2024 13:48)