ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 июля
1318129 Топик полностью
IBAH (09.06.2023 14:38, просмотров: 86) ответил POV на Ну, уверен что всё просто, это вопрос грамотности и аккуратности. Но может как-то сводно это есть по какой-либо статейке? Чтобы наконец осмыслить [речь про невыровненный доступ?][UPD]...
Имхо, проверять выравнивание 

я делаю так

/
#pragma pack(push,1) 
typedef struct
  {
  unsigned short Inv;                   //0 Регистр Инверсий входных сигналов
  RegComp_t      RegComp;               //2 Регистр комплектации
  ////////////
  unsigned char  vrv[1];                //86 выравнивание
  unsigned char  CRCzap;                //87+1 должно быть кратно 4
  }IntEEPROM_t;
#pragma pack(pop) 

//Проверка рахмещения данных
#include <stddef.h>
//Проверка выравнивания CRC
typedef struct {int ProverkaCRC : !((offsetof(IntEEPROM_t, CRCzap)+1)%4);} CRCProverka;
//проверка выравнивания переменных
#define PROVERKA(var) typedef struct {int Proverka : !((offsetof(IntEEPROM_t, var))%sizeof((((IntEEPROM_t*)0)->var)));} var##__COUNTER__;
PROVERKA(Inv)                           //0 Регистр Инверсий входных сигналов
PROVERKA(RegComp)                       //2 Регистр комплектации
/