bss_seg
pragma
Určuje oddíl (segment), ve kterém jsou v souboru objektu (.obj) uloženy neinicializované proměnné.
Syntaxe
#pragma bss_seg(
[ "section-name" [,
"section-class" ] ])
#pragma bss_seg(
{push
|pop
} [,
identifikátor ] [,
"section-name" [,
"section-class" ] ])
Parametry
push
(Volitelné) Vloží záznam do zásobníku interního kompilátoru. A push
může mít identifikátor a název oddílu.
pop
(Volitelné) Odebere záznam z horní části interního zásobníku kompilátoru. A pop
může mít identifikátor a název oddílu. Pomocí identifikátoru můžete zobrazit více záznamů pouze jedním pop
příkazem. Název oddílu se stane aktivním názvem oddílu BSS za pop.
identifikátor
(Volitelné) Při použití se push
záznamem v interním zásobníku kompilátoru přiřadí název záznamu. Při použití pop
se direktivou vyskočí záznamy z interního zásobníku, dokud se identifikátor neodebere. Pokud se v interním zásobníku nenajde identifikátor , nic se nevypíná.
"section-name"
(Volitelné) Název oddílu. Při použití pop
se zásobník zobrazí a název oddílu se změní na aktivní název oddílu BSS.
"section-class"
(Volitelné) Ignorováno, ale je součástí kompatibility s verzemi Microsoft C++ staršími než verze 2.0.
Poznámky
Oddíl v souboru objektu je pojmenovaný blok dat načtených do paměti jako jednotka. Část BSS je oddíl, který obsahuje neinicializovaná data. V tomto článku mají segment termínů a oddíl stejný význam.
Direktiva bss_seg
pragma kompilátoru říká, aby všechny neinicializované datové položky z jednotky překladu umístil do oddílu BSS s názvem section-name. V některých případech může použití bss_seg
zrychlit načítání seskupením neinicializovaných dat do jedné části. Ve výchozím nastavení je část BSS použitá pro neinicializovaná data v souboru objektu pojmenována .bss
. Direktiva bss_seg
pragma bez parametru section-name resetuje název oddílu BSS pro následné neinicializované datové položky na .bss
.
Data přidělená pomocí této funkce bss_seg
pragma neuchovávají žádné informace o jejich umístění.
Seznam názvů, které by se neměly používat k vytvoření oddílu, najdete v tématu /SECTION
.
Můžete také zadat oddíly pro inicializovaná data (), funkce (data_seg
code_seg
) a proměnné const (const_seg
).
K zobrazení souborů objektů můžete použít DUMPBIN.EXE aplikaci. Verze DUMPBIN pro každou podporovanou cílovou architekturu jsou součástí sady Visual Studio.
Příklad
// 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() {
}