для действительно специфических выравниваний структуры вы можете поиграть с заполнением байтов
Поэтому добавьте несколько фиктивных байтов между различными полями, пока выравнивание не будет соответствовать вашим потребностям.
пример:
Пример структуры
{
беззнаковый короткий х;
байт dummy1;
байт dummy2;
байт dummy3;
байт dummy4;
байт dummy5;
байт dummy6;
без знака int y;
};
если бы фиктивные байты не были бы размещены, int, вероятно, был бы размещен со смещением 4 (4 байта от начала структуры, в то время как теперь он был размещен со смещением 8)
waring: очень специфичный для компилятора и плохой код практики; ^)