Выравнивание членов структуры в Visual C ++ 2008 - PullRequest
3 голосов
/ 18 мая 2009

Visual C ++ позволяет вам выбирать элементы struct alignemnt на странице свойств проекта. Проблема в том, что эта конфигурация используется для всех проектов в проекте.

Есть ли какой-нибудь способ (я думаю, специфичный для VC ++), чтобы установить выравнивание членов определенной структуры отдельно?

Ответы [ 3 ]

6 голосов
/ 18 мая 2009
1 голос
/ 18 мая 2009
0 голосов
/ 18 мая 2009

для действительно специфических выравниваний структуры вы можете поиграть с заполнением байтов

Поэтому добавьте несколько фиктивных байтов между различными полями, пока выравнивание не будет соответствовать вашим потребностям.

пример:

Пример структуры { беззнаковый короткий х; байт dummy1; байт dummy2; байт dummy3; байт dummy4; байт dummy5; байт dummy6; без знака int y; };

если бы фиктивные байты не были бы размещены, int, вероятно, был бы размещен со смещением 4 (4 байта от начала структуры, в то время как теперь он был размещен со смещением 8)

waring: очень специфичный для компилятора и плохой код практики; ^)

...