Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megadja azt a szövegszakaszt (szegmenst), amelyben a függvények az objektumfájlban (.obj) vannak tárolva.
Szintaxis
#pragma code_seg([ "szakasznév" [,"szakaszosztály" ] ] ])
#pragma code_seg({push|pop} [,azonosító ] [,"szakasznév" [,"szakaszosztály" ] ] ])
Paraméterek
push
(Nem kötelező) Rekordot helyez el a belső fordítóveremen. Egy push rendelkezhet azonosítóval és szakasznév.
pop
(Nem kötelező) Eltávolít egy rekordot a belső fordítóverem tetejéről. Egy pop rendelkezhet azonosítóval és szakasznév. A azonosítóhasználatával több rekordot is előugrathat egyetlen pop paranccsal. A szakasznév lesz az aktív szövegszakasz neve a pop után.
azonosító
(Nem kötelező) Ha pushhasznál, a belső fordítóverem rekordjának nevét rendeli hozzá. Ha pophasznál, az irányelv addig rögzíti a belső vermet, amíg el nem távolítja azonosító. Ha azonosító nem található a belső veremen, a rendszer semmit sem talál.
"szakasznév"
(Nem kötelező) Egy szakasz neve. Ha pophasznál, a verem megjelenik, és szakasznév lesz az aktív szövegszakasz neve.
"szakaszosztályú"
(Nem kötelező) Figyelmen kívül hagyja, de a Microsoft C++ 2.0-s verziónál korábbi verzióival való kompatibilitás érdekében tartalmazza.
Megjegyzések
Egy objektumfájl szakasza egy elnevezett adatblokk, amely egységként töltődik be a memóriába. A szöveges szakasz végrehajtható kódot tartalmazó szakasz. Ebben a cikkben a szegmensek és szakasz azonos jelentéssel rendelkeznek.
A code_segpragma irányelv arra utasítja a fordítót, hogy a fordítási egység minden további objektumkódját egy szakasznévnevű szövegszakaszba helyezze. Alapértelmezés szerint az objektumfájl függvényeihez használt szövegszakasz neve .text. A szakasznév nélküli code_segpragma-irányelv paraméter alaphelyzetbe állítja a szövegszakasz nevét a következő objektumkódhoz .text.
A code_segpragma irányelv nem szabályozza a példányosított sablonokhoz létrehozott objektumkód elhelyezését. Nem szabályozza a fordító által implicit módon létrehozott kódot, például a speciális tagfüggvényeket. A kód szabályozásához javasoljuk, hogy inkább a __declspec(code_seg(...)) attribútumot használja. Lehetővé teszi az összes objektumkód elhelyezésének szabályozását, beleértve a fordító által létrehozott kódot is.
A szakasz létrehozásához nem használható nevek listáját a /SECTIONcímű témakörben találja.
Az inicializált adatok (data_seg), az nem inicializált adatok (bss_seg) és a const változók (const_seg) szakaszait is megadhatja.
Az DUMPBIN.EXE alkalmazással megtekintheti az objektumfájlokat. Az egyes támogatott célarchitektúrákHOZ tartozó DUMPBIN-verziók a Visual Studio részét képezik.
Példa
Ez a példa bemutatja, hogyan használható a code_segpragma irányelv az objektumkód elhelyezésének szabályozására:
// 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() {
}
Lásd még:
code_seg (__declspec)
Pragma irányelvei, valamint a __pragma és _Pragma kulcsszavak