/Zp (Выравнивание члена структуры)

Управляет упаковкой элементов структуры в память и задает одну и ту же упаковку для всех структур в модуле.

Синтаксис

/Zp[1|2|4|8|16]

Remarks

Параметр /ZpN указывает компилятору, где должен храниться каждый элемент структуры. Компилятор сохраняет элементы после первого элемента по границе, которая представляет собой меньшее из двух значений: размер типа элемента и N байт.

Возможные значения упаковки описаны в следующей таблице:

Аргумент /Zp Действие
1 Упаковывает структуры по 1-байтовым границам. Эквивалентно /Zp.
2 Упаковывает структуры по 2-байтовым границам.
4 Упаковывает структуры по 4-байтовым границам.
8 Упаковывает структуры по 8-байтовым границам (используется по умолчанию для x86, ARM и ARM64).
16 Упаковывает структуры по 16-байтовым границам (используется по умолчанию для x64).

Не используйте этот параметр, если не заданы конкретные требования к выравниванию.

Предупреждение

В заголовочных файлах C/C++ из Windows SDK предполагается, что используется принятое на платформе выравнивание по умолчанию. Не изменяйте значение параметра по умолчанию при включении заголовков Windows SDK с помощью /Zp в командной строке или с помощью #pragma pack. В противном случае во время выполнения приложения может произойти повреждение памяти.

Для управления упаковкой структур также можно использовать pack pragma. Дополнительные сведения о выравнивании см. в разделах:

Установка данного параметра компилятора в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Создание кода.

  3. Измените свойство Выравнивание элемента структуры.

Установка данного параметра компилятора программным способом

См. также

Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC