section pragma

Создает раздел в OBJ-файле.

Синтаксис

#pragma section( "имя" раздела [ ,атрибуты ] )

Замечания

Сегмент терминов и раздел имеют то же значение в этой статье.

После определения раздела он остается допустимым для остальной части компиляции. Тем не менее, необходимо использовать __declspec(allocate)или ничего не помещается в раздел.

имя раздела — это обязательный параметр, который становится именем раздела. Имя не должно конфликтовать со стандартными именами раздела. Список /SECTION имен, которые не следует использовать при создании раздела.

атрибуты — это необязательный параметр, состоящий из одного или нескольких атрибутов, разделенных запятыми, для назначения разделу. Возможные атрибуты :

Атрибут Description
read Позволяет выполнять операции чтения данных.
write Позволяет выполнять операции записи данных.
execute Позволяет выполнять код.
shared Предоставляет совместный доступ к разделу всем процессам, загружающим образ.
nopage Помечает раздел как недоступный для страницы. Полезно для драйверов устройств Win32.
nocache Помечает раздел как недоступный для кэширования. Полезно для драйверов устройств Win32.
discard Помечает раздел как дис карта able. Полезно для драйверов устройств Win32.
remove Помечает раздел как не резидентный в памяти. Только для драйверов виртуальных устройств (VxD).

Если атрибуты не указаны, раздел содержит read и write атрибуты.

Пример

В этом примере первый раздел определяет раздел pragma и его атрибуты. Целое число j не помещается mysec , так как оно не было объявлено с помощью __declspec(allocate). Вместо этого j перейдите в раздел данных. Целое число i переходит в mysec силу атрибута __declspec(allocate) класса хранилища.

// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;

__declspec(allocate("mysec"))
int i = 0;

int main(){}

См. также

Директивы Pragma и __pragma_Pragma ключевое слово