section
在 .obj 檔案中建立區段。
#pragma section( "section-name" [, attributes] )
備註
在本主題中,「區段」(Segment) 和「區段」(Section) 這兩個詞的意義可互換。
區段定義之後,其仍適用於編譯的其餘部分。 不過,您必須使用 __declspec(allocate),否則區段中不會有任何內容。
section-name 是必要的參數,它將會是該區段的名稱。 名稱不得與任何標準區段名稱相衝突。 如需建立區段時不應該使用的名稱清單,請參閱 /SECTION。
attributes 是選擇性的參數,其中包含一個或多個逗號分隔的屬性,這些是您要指派給該區段的屬性。 可能的 attributes 為:
read
允許對於資料進行讀取作業。write
允許對於資料進行寫入作業。execute
允許執行程式碼。shared
讓所有載入影像的處理序共用區段。nopage
將區段標記為不可分頁;適用於 Win32 裝置驅動程式。nocache
將區段標記為不可快取;適用於 Win32 裝置驅動程式。discard
將區段標記為可捨棄;適用於 Win32 裝置驅動程式。remove
將區段標記為不駐留記憶體;僅限虛擬裝置驅動程式 (VxD)。
如果您未指定屬性,區段將會具有讀取和寫入屬性。
範例
在下列範例中,第一個指令會識別區段及其屬性。 由於未以 __declspec(allocate) 宣告整數 j,因此不會將該整數置於 mysec;j 會包含在資料區段中。 整數 i 屬於 mysec,這是其 __declspec(allocate) 儲存類別屬性的結果。
// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}