Это зависит от настроек вашего компилятора. Однако по умолчанию все восемь байтов и младше будут выровнены по естественной границе. Таким образом, «int» мы выровнены на 32-битной границе.
Кроме того, директива #pragma pack может использоваться для изменения выравнивания внутри модуля компиляции.
Хочу добавить, что ответ предполагает компилятор Microsoft C / C ++. Правила упаковки могут отличаться от компилятора к компилятору. Но в целом, я бы предположил , что большинство компиляторов C / C ++ для Windows используют одни и те же значения по умолчанию, чтобы облегчить работу с заголовками Microsoft SDK.