ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
30 июня
1435348 Топик полностью
SciFi (15.05.2024 14:51, просмотров: 117) ответил Vit на В CMSIS нонче есть несколько оберток портабельных: __PACKED_STRUCT, __PACKED_UNION и что-то рядом. Использование же pragma pack, например, в хедерах, это, мягко говоря, неаккуратненько, да и между компилерами не очень портабельно. Я стараюсь обходиться без паков. Хотя и приходится чужой код поддерживать с наличием.
Самые-самые обёртки в lwip: 
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/bpstruct.h"
#endif
PACK_STRUCT_BEGIN
struct udp_hdr {
  PACK_STRUCT_FIELD(u16_t src);
  PACK_STRUCT_FIELD(u16_t dest);  /* src/dest UDP ports */
  PACK_STRUCT_FIELD(u16_t len);
  PACK_STRUCT_FIELD(u16_t chksum);
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/epstruct.h"
#endif
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้