section pragma

OBJ dosyasında bir bölüm oluşturur.

Sözdizimi

#pragma section( "section-name" [ ,öznitelikler ] )

Açıklamalar

Segment ve bölüm terimleri bu makalede aynı anlama sahiptir.

Bir bölüm tanımlandığında, derlemenin geri kalanı için geçerli kalır. Ancak kullanmanız gerekir __declspec(allocate), aksi durumda bölüme hiçbir şey yerleştirilmeli.

section-name , bölümün adı haline gelen gerekli bir parametredir. Ad hiçbir standart bölüm adıyla çakışmamalıdır. Bölüm oluştururken kullanmamanız gereken adların listesi için bkz /SECTION .

öznitelikleri , bölüme atanacak bir veya daha fazla virgülle ayrılmış özniteliklerden oluşan isteğe bağlı bir parametredir. Olası öznitelikler şunlardır:

Öznitelik Tanım
read Verilerde okuma işlemlerine izin verir.
write Verilerde yazma işlemlerine izin verir.
execute Kodun yürütülmesine izin verir.
shared Bölümü, görüntüyü yükleyen tüm işlemler arasında paylaşır.
nopage Bölümü sayfalanabilir değil olarak işaretler. Win32 cihaz sürücüleri için kullanışlıdır.
nocache Bölümü önbelleğe alınamaz olarak işaretler. Win32 cihaz sürücüleri için kullanışlıdır.
discard Bölümü atılabilir olarak işaretler. Win32 cihaz sürücüleri için kullanışlıdır.
remove Bölümü bellekte yerleşik değil olarak işaretler. Yalnızca sanal cihaz sürücüleri (VxD) için.

Herhangi bir öznitelik belirtmezseniz bölümünde ve write öznitelikleri vardırread.

Örnek

Bu örnekte, ilk bölüm pragma bölümü ve özniteliklerini tanımlar. kullanılarak bildirildiği __declspec(allocate)için tamsayı j içine mysec yerleştirilemiyor. Bunun yerine veri j bölümüne gider. Tamsayıi, depolama sınıfı özniteliği nedeniyle __declspec(allocate) içine mysec gider.

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

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

int main(){}

Ayrıca bkz.

Pragma yönergeleri ve __pragma ve _Pragma anahtar sözcükleri