Sdílet prostřednictvím


code_seg

Určuje textový segment, kde jsou funkce uloženy v souboru .obj.

#pragma code_seg( [ [ { push | pop }, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] )

Poznámky

Směrnice pragma code_seg nemá vliv na umístění objektového kódu generovaného pro instancované šablony ani kódu generovaného implicitně kompilátorem, například zvláštní členské funkce.Doporučujeme místo toho použít atribut __declspec(code_seg(...)), protože s ním můžete ovládat umístění celého objektového kódu.To zahrnuje kód generovaný kompilátorem.

Segment v souboru .obj je pojmenovaný blok dat, který je načten do paměti jako celek.Textový segment je segment, který obsahuje spustitelný kód.V tomto článku se slova segment a část zaměňují.

Směrnice pragma code_seg instruuje kompilátor, aby uvedl veškerý následný objektový kód z převodu jednotky do textového segmentu text s názvem segment-name.Ve výchozím nastavení se textový segment použitý v souboru .obj nazývá .text.

Směrnice pragma code_seg bez parametrů obnoví výchozí název textového segmentu pro následný objektový kód na .text.

  • Push (volitelné)
    Vloží záznam do zásobníku vnitřního kompilátoru.push může mít identifier a segment-name.

  • pop (volitelné)
    Odstraní nejvyšší záznam z vnitřního zásobníku kompilátoru.

  • identifier (volitelné)
    Při použití s push přiřadí název záznamu ve vnitřním zásobníku kompilátoru.Při použití s pop bude brát záznamy z vnitřního zásobníku, dokud neodstraní identifier; pokud identifier není nalezen v interním zásobníku, nic nevezme.

    identifier umožňuje odebrání více záznamů pouze s jedním příkazem pop.

  • "segment-name" (volitelné)
    Název segmentuPři použití s pop je zásobník odebrán a segment-name se stane aktivním názvem textového segmentu.

  • "segment-class" (volitelné)
    Ignorováno, ale zahrnuto pro kompatibilitu s verzemi jazyka C++ před verzí 2.0.

Lze použít aplikaci DUMPBIN.EXE k zobrazení souborů obj.Součástí Visual Studio jsou verze DUMPBIN pro každou podporovanou cílovou architekturu.

Příklad

Tento příklad ukazuje, jak použít směrnici pragma code_seg a určit místo uložení objektového kódu:

// 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() {
}

Seznam názvů, které by neměly být využívány k vytvoření oddílu, naleznete v tématu /SECTION.

Můžete také určit oddíly pro inicializovaná data (data_seg), neinicializovaná data (bss_seg) a proměnné const (const_seg).

Viz také

Referenční dokumentace

code_seg (__declspec)

Direktivy Pragma a klíčové slovo __Pragma