Freigeben über


const_seg

Gibt das Segment an, in dem Konstante-Variablen in der OBJ-Datei gespeichert werden.

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

Hinweise

Die Bedeutung der Ausdrücke Segment und - Abschnitt in diesem Thema sind austauschbar.

OBJ-Dateien können mit der dumpbin Anwendung angezeigt werden.Das standardmäßige Segment in der OBJ-Datei für const-Variablen ist .rdata.Einige const-Variablen, z. B. Skalare, sind automatisch in den Codestream inline.Inline Code wird nicht in .rdata.

const_seg ohne Parameter platziert das Segment zu .rdata zurück.

  • drücken Sie(optional)
    Setzt einen Datensatz für das intern Compilerstapel.drücken Sie kann einen Bezeichner und Segment NAMEhaben.

  • pop (optional)
    Entfernt einen Datensatz von der obersten Position des Compilerstapel intern.

  • Bezeichner (optional)
    Wenn Sie mit drücken Sieverwendet werden, ordnet einen Namen am Datensatz auf dem Compilerstapel intern zu.Wenn sie mit popverwendet werden, zeichnet Knalle vom internen Stapel, bis Bezeichner entfernt wurde. wenn der Bezeichner nicht auf dem internen Stapel gefunden wird, wird nichts vom Stapel geholt.

    Verwenden des Bezeichners können mehrere mit einem einzelnen pop Befehl geholt Datensätze werden soll.

  • Segment „NAME“(optional)
    Der Name eines Segments*.* Wenn er mit popverwendet wird, wird der Stapel geholt und Segment NAME wird der Name des aktiven Abschnitts.

  • Segment „Class“ (optional)
    Kompatibilität mit C++ enthalten, Version 2.0, eingeführt.Es wird ignoriert.

Beispiel

// pragma_directive_const_seg.cpp
// compile with: /EHsc
#include <iostream>

const int i = 7;               // inlined, not stored in .rdata
const char sz1[]= "test1";     // stored in .rdata

#pragma const_seg(".my_data1")
const char sz2[]= "test2";     // stored in .my_data1

#pragma const_seg(push, stack1, ".my_data2")
const char sz3[]= "test3";     // stored in .my_data2

#pragma const_seg(pop, stack1) // pop stack1 from stack
const char sz4[]= "test4";     // stored in .my_data1

int main() {
    using namespace std;
   // const data must be referenced to be put in .obj
   cout << sz1 << endl;
   cout << sz2 << endl;
   cout << sz3 << endl;
   cout << sz4 << endl;
}
  

Kommentare

Weitere Informationen finden Sie unter /SECTION für eine Liste von Namen, die Sie nicht verwenden, wenn Sie einen Abschnitt erstellen.

Sie können Abschnitte für initialisierte Daten (data_seg) nicht initialisierte Daten (bss_seg) und Functions (code_seg).

Siehe auch

Referenz

Pragma-Direktiven und das __Pragma-Schlüsselwort