code_seg
pragma
Určuje textový oddíl (segment), ve kterém jsou funkce uloženy v souboru objektu (.obj).
Syntaxe
#pragma code_seg(
[ "section-name" [,
"section-class" ] ])
#pragma code_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 názvem aktivního textového oddílu 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 název aktivního textového oddílu.
"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. Textový oddíl je oddíl, který obsahuje spustitelný kód. V tomto článku mají segment termínů a oddíl stejný význam.
Direktiva code_seg
pragma kompilátoru říká, aby všechny další objektové kódy z jednotky překladu umístil do textového oddílu s názvem section-name. Ve výchozím nastavení se textový oddíl používaný pro funkce v souboru objektu jmenuje .text
. Direktiva code_seg
pragma bez parametru section-name resetuje název textového oddílu pro následující kód objektu na .text
.
Direktiva code_seg
pragma neřídí umístění kódu objektu vygenerovaného pro vytváření instancí šablon. Neřídí ani kód vygenerovaný implicitně kompilátorem, jako jsou speciální členské funkce. Pokud chcete tento kód řídit, doporučujeme místo toho použít __declspec(code_seg(...))
atribut. Poskytuje kontrolu nad umístěním veškerého objektového kódu, včetně kódu generovaného kompilátorem.
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 (data_seg
), neinicializovaná data (bss_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
Tento příklad ukazuje, jak použít direktivu code_segpragma k řízení umístění kódu objektu:
// pragma_directive_code_seg.cpp
void func1() { // stored in .text
}
#pragma code_seg(".my_data1")
void func2() { // stored in my_data1
}
#pragma code_seg(push, r1, ".my_data2")
void func3() { // stored in my_data2
}
#pragma code_seg(pop, r1) // stored in my_data1
void func4() {
}
int main() {
}
Viz také
code_seg (__declspec)
Pragma direktivy a __pragma
_Pragma
klíčová slova