共用方式為


bss_seg pragma

指定未初始化變數儲存在 物件 (.obj) 檔案中的區段(區段)。

語法

#pragma bss_seg( [ 「 section-name 」 [ , section-class 」 ] ] )
#pragma bss_seg({ push | pop } [ , identifier ] [ , section-name 」 [ , section-class 」 ] ])

參數

push
(選擇性)將記錄放在內部編譯器堆疊上。 push可以有 識別碼 區段名稱

pop
(選擇性)從內部編譯器堆疊頂端移除記錄。 pop可以有 識別碼 區段名稱 。 您可以使用識別碼,只使用一個 pop 命令 來快顯多個記錄。 區 段名稱 會在快顯之後變成使用中的 BSS 區段名稱。

identifier
(選擇性)搭配 push 使用 時,會將名稱指派給內部編譯器堆疊上的記錄。 搭配 pop 使用 時,指示詞會從內部堆疊取出記錄,直到 移除識別碼 為止。 如果在 內部堆疊上找不到識別碼,則不會彈出任何識別碼

「section-name」
(選擇性)區段的名稱。 搭配 pop 使用 時,會彈出堆疊,而 section-name 會變成使用中的 BSS 區段名稱。

「section-class」
(選擇性)忽略,但包含與 2.0 版舊版 Microsoft C++ 的相容性。

備註

物件檔中的區段 是載入記憶體作為單位的資料具名區塊。 BSS 區段 是包含未初始化資料的區段。 在本文中,字詞 區段 區段 的意義相同。

指示 bss_segpragma 詞會指示編譯器將所有未初始化的資料項目從轉譯單位放入名為 section-name 的 BSS 區段。 在某些情況下,使用 bss_seg 可加速載入時間,方法是將未初始化的資料分組到一個區段。 根據預設,物件檔中用於未初始化資料的 BSS 區段會命名為 .bssbss_segpragma 沒有 section-name 參數的指示詞會將後續未初始化資料項目 .bss 的 BSS 區段名稱重設為 。

使用 bss_segpragma 配置的資料不會保留其位置的任何資訊。

如需不應該用來建立區段的名稱清單,請參閱 /SECTION

您也可以指定初始化資料 ()、函式 ( data_segcode_seg ) 和 const 變數 () 的 const_seg 區段。

您可以使用 DUMPBIN.EXE 應用程式來檢視物件檔案。 每個支援的目標架構的 DUMPBIN 版本都會隨附于 Visual Studio 中。

範例

// pragma_directive_bss_seg.cpp
int i;                     // stored in .bss
#pragma bss_seg(".my_data1")
int j;                     // stored in .my_data1

#pragma bss_seg(push, stack1, ".my_data2")
int l;                     // stored in .my_data2

#pragma bss_seg(pop, stack1)   // pop stack1 from stack
int m;                     // stored in .my_data1

int main() {
}

另請參閱

Pragma 指示詞和 __pragma_Pragma 關鍵字