Freigeben über


bss_seg pragma

Gibt den Abschnitt (Segment) an, in dem nicht initialisierte Variablen in der Objektdatei (.obj) gespeichert werden.

Syntax

#pragma bss_seg( [ "Section-name" [ , "section-class" ] )
#pragma bss_seg( { } push | pop [ ,Bezeichner ] [ , "Section-name" [ , "section-class" ] )

Parameter

push
(Optional) Fügt einen Datensatz in den internen Compilerstapel ein. A push kann einen Bezeichner und einen Abschnittsnamen aufweisen.

pop
(Optional) Entfernt einen Datensatz vom oberen Rand des internen Compilerstapels. A pop kann einen Bezeichner und einen Abschnittsnamen aufweisen. Sie können mehrere Datensätze mit nur einem pop Befehl mithilfe des Bezeichners auffüllen. Der Abschnittsname wird nach dem Popup zum aktiven BSS-Abschnittsnamen.

identifier
(Optional) Bei Verwendung mit push, weist dem Datensatz im internen Compilerstapel einen Namen zu. Bei Verwendung mit popder Direktive werden Datensätze aus dem internen Stapel angezeigt, bis der Bezeichner entfernt wird. Wenn der Bezeichner im internen Stapel nicht gefunden wird, wird nichts angezeigt.

"Abschnittsname"
(Optional) Der Name eines Abschnitts. Bei Verwendung mit popdem Stapel wird der Stapel eingetaucht, und der Abschnittsname wird zum aktiven BSS-Abschnittsnamen.

"section-class"
(Optional) Ignoriert, ist jedoch aus Gründen der Kompatibilität mit Versionen von Microsoft C++ vor Version 2.0 enthalten.

Hinweise

Ein Abschnitt in einer Objektdatei ist ein benannter Datenblock, der als Einheit in den Arbeitsspeicher geladen wird. Ein BSS-Abschnitt ist ein Abschnitt , der nicht initialisierte Daten enthält. In diesem Artikel haben die Begriffe Segment und Abschnitt dieselbe Bedeutung.

Die bss_segpragma Direktive weist den Compiler an, alle nicht initialisierten Datenelemente aus der Übersetzungseinheit in einen BSS-Abschnitt namens "Abschnittsname" zu setzen. In einigen Fällen kann die Verwendung von bss_seg Ladezeiten beschleunigen, indem nicht initialisierte Daten in einem Abschnitt gruppiert werden. Standardmäßig wird der BSS-Abschnitt, der für nicht initialisierte Daten in einer Objektdatei verwendet wird, benannt .bss. Eine bss_segpragma Direktive ohne Abschnittsnamenparameter setzt den BSS-Abschnittsnamen für die nachfolgenden nicht initialisierten Datenelemente auf .bss.

Daten, die mit der Verwendung zugewiesen werden, bss_segpragma behalten keine Informationen über ihren Standort bei.

Eine Liste der Namen, die nicht zum Erstellen eines Abschnitts verwendet werden sollen, finden Sie unter /SECTION.

Sie können auch Abschnitte für initialisierte Daten (data_seg), Funktionen (code_seg) und Konstvariablen (const_seg) angeben.

Sie können die DUMPBIN.EXE-Anwendung verwenden, um Objektdateien anzuzeigen. Versionen von DUMPBIN für jede unterstützte Zielarchitektur sind in Visual Studio enthalten.

Beispiel

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

Siehe auch

Pragma-Direktiven und die __pragma und _Pragma Schlüsselwort (keyword)