Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Azt a szakaszt (szegmenst) adja meg, amelyben az objektumfájlban (.obj) nem inicializált változók vannak tárolva.
Szintaxis
#pragma bss_seg([ "szakasznév" [,"szakaszosztály" ] ] ])
#pragma bss_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 BSS-szakasz 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 BSS-szakasznév.
"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 BSS-szakasz nem inicializált adatokat tartalmazó szakasz. Ebben a cikkben a szegmensek és szakasz azonos jelentéssel rendelkeznek.
A bss_segpragma irányelv arra utasítja a fordítót, hogy a fordítási egységből származó összes nem inicializált adatelemet egy szakasznévnevű BSS-szakaszba helyezze. Bizonyos esetekben a bss_seg használata felgyorsíthatja a betöltési időket úgy, hogy nem inicializált adatokat csoportosít egy szakaszba. Alapértelmezés szerint az objektumfájlban lévő nem nemi adatokhoz használt BSS-szakasz neve .bss. A szakasznév nélküli bss_segpragma-direktíva paraméter alaphelyzetbe állítja a BSS-szakasz nevét a későbbi nem inicializált adatelemekhez .bss.
A bss_segpragma használatával lefoglalt adatok nem őrzik meg a helyével kapcsolatos információkat.
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), a függvények (code_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
// 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() {
}
Lásd még:
Pragma irányelvei, valamint a __pragma és _Pragma kulcsszavak