section
pragma
OBJ dosyasında bir bölüm oluşturur.
Sözdizimi
#pragma section( "
bölüm adı"
[,
ö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 | Açıklama |
---|---|
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