Megosztás:


bss_seg pragma

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