ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 июля
1304203 Топик полностью
IBAH (26.04.2023 12:38, просмотров: 177) ответил IBAH на А существует метод проверки, на этапе компиляции, правильной упаковки структур? То есть, упакованная структура, сдуру написал long по нечетному адресу, а компилятор дает варнинг. Сейчас возле каждого элемента ставлю его смещение в байтах, нутром чую, делаю по колхозному
Сделал так, но дает варниг использование адреса невыровненного члена структуры. Как победить? 
№
#pragma pack(push,1) 
typedef struct
  {
  long a;
  short b;
  char c;
  }IntEEPROM_t;
#pragma pack(pop) 
      
#define PROVERKA(var) typedef struct {int var##TmpVar : !(((int)(&(((IntEEPROM_t*)0)->var)))%sizeof((((IntEEPROM_t*)0)->var)));} TmpVar##var;

PROVERKA(a)
PROVERKA(b)
PROVERKA(c)


№№