Freigeben über


data_seg

Gibt das Datensegment an, in dem initialisierte Variablen in der OBJ-Datei gespeichert werden.

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

Hinweise

Die Ausdrücke Segment und Abschnitt sind in diesem Thema gleichbedeutend.

OBJ-Dateien können mit der dumpbin-Anwendung angezeigt werden. Das Standardsegment für initialisierte Variablen in der OBJ-Datei ist ".data". Nicht initialisierte Variablen werden als mit Null initialisiert behandelt und in ".bss" gespeichert.

data_seg ohne Parameter setzt das Segment auf ".data" zurück.

  • push(optional)
    Legt einen Datensatz auf den internen Compilerstapel. Ein push kann einen identifier und einen segment-name haben.

  • pop (optional)
    Entfernt einen Datensatz von der obersten Position des internen Compilerstapels.

  • identifier (optional)
    Bei Verwendung mit push wird dem Datensatz im internen Compilerstapel ein Name zugewiesen. Bei Verwendung mit pop werden Datensätze vom internen Stapel geholt, bis identifier entfernt wird. Wenn identifier im internen Stapel nicht gefunden wird, wird kein Element vom Stapel geholt.

    identifier ermöglicht, mehrere Datensätze mit einem einzelnen pop-Befehl zu entfernen.

  • "segment-name"(optional)
    Der Name eines Segments*.* Bei Verwendung mit pop wird das Element vom Stapel geholt und segment-name wird zum aktiven Segmentnamen.

  • "segment-class" (optional)
    Zum Gewährleisten der Kompatibilität mit C++ vor Version 2.0 eingeführt. Wird ignoriert.

Beispiel

// pragma_directive_data_seg.cpp
int h = 1;                     // stored in .data
int i = 0;                     // stored in .bss
#pragma data_seg(".my_data1")
int j = 1;                     // stored in "my_data1"

#pragma data_seg(push, stack1, ".my_data2")   
int l = 2;                     // stored in "my_data2"

#pragma data_seg(pop, stack1)   // pop stack1 off the stack
int m = 3;                     // stored in "stack_data1"

int main() {
}

Die Daten, die mithilfe von data_seg zugeordnet werden, halten keine Informationen über den Speicherort bereit.

Eine Liste der Namen, die Sie beim Erstellen eines Abschnitts nicht verwenden sollten, finden Sie unter /SECTION.

Sie können auch Abschnitte für const-Variablen (const_seg) nicht initialisierte Daten (bss_seg) und Funktionen (code_seg) angeben.

Siehe auch

Referenz

Pragma-Direktiven und das __Pragma-Schlüsselwort