section
pragma
在 OBJ 檔案中建立區段。
語法
#pragma section( "
section-name"
[,
屬性 ])
備註
本文中的字詞 區段 和 區段 具有相同的意義。
定義區段之後,它仍然對其餘的編譯有效。 不過,您必須使用 __declspec(allocate)
,或區段中未放置任何專案。
section-name 是成為區段名稱的必要參數。 名稱不得與任何標準區段名稱相衝突。 如需建立區段時不應該使用的名稱清單,請參閱 /SECTION
。
attributes 是選擇性參數,其中包含一或多個要指派給 區段的逗號分隔屬性。 可能的 屬性 包括:
屬性 | 描述 |
---|---|
read |
允許對於資料進行讀取作業。 |
write |
允許對於資料進行寫入作業。 |
execute |
允許執行程式碼。 |
shared |
讓所有載入影像的處理序共用區段。 |
nopage |
將區段標示為不可分頁。 適用於 Win32 裝置驅動器。 |
nocache |
將區段標示為不可快取。 適用於 Win32 裝置驅動器。 |
discard |
將區段標示為可捨棄。 適用於 Win32 裝置驅動器。 |
remove |
將區段標示為非記憶體常駐區段。 只限虛擬裝置驅動器 (VxD) 。 |
如果您未指定任何屬性,則區段具有 read
和 write
屬性。
範例
在此範例中,第一個區段會識別區段 pragma 及其屬性。 整數 j
不會放入 中 mysec
,因為它未使用 __declspec(allocate)
宣告。 j
請改為進入數據區段。 整數i
會因為其__declspec(allocate)
儲存類別屬性而進入 mysec
。
// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}