section
pragma
Erstellt einen Abschnitt in einer OBJ-Datei.
Syntax
#pragma section( "
Abschnittsname"
[,
Attribute ])
Hinweise
Die Begriffe Segment und Abschnitt haben die gleiche Bedeutung in diesem Artikel.
Sobald ein Abschnitt definiert ist, bleibt er für den Rest der Kompilierung gültig. Sie müssen jedoch nichts verwenden __declspec(allocate)
oder nichts im Abschnitt platziert werden.
Der Abschnittsname ist ein erforderlicher Parameter, der zum Namen des Abschnitts wird. Der Name darf keinem Standard-Abschnittsnamen ähneln. Eine /SECTION
Liste der Namen finden Sie beim Erstellen eines Abschnitts nicht.
Attribute sind ein optionaler Parameter, der aus einem oder mehreren durch Kommas getrennten Attributen besteht, die dem Abschnitt zugewiesen werden sollen. Mögliche Attribute sind:
Attribute | Beschreibung |
---|---|
read |
Ermöglicht Lesevorgänge für Daten. |
write |
Ermöglicht Schreibvorgänge für Daten. |
execute |
Ermöglicht die Ausführung von Code. |
shared |
Gibt den Abschnitt für alle Prozesse frei, die das Image laden. |
nopage |
Markiert den Abschnitt als nicht seitenfähig. Nützlich für Win32-Gerätetreiber. |
nocache |
Markiert den Abschnitt als nicht zwischenspeicherbar. Nützlich für Win32-Gerätetreiber. |
discard |
Markiert den Abschnitt als verworfen. Nützlich für Win32-Gerätetreiber. |
remove |
Markiert den Abschnitt als nicht speicherresident. Nur für virtuelle Gerätetreiber (VxD). |
Wenn Sie keine Attribute angeben, verfügt read
der Abschnitt über und write
Attribute.
Beispiel
In diesem Beispiel identifiziert der erste Abschnitt den Abschnitt pragma und seine Attribute. Die ganze Zahl j
wird nicht eingefügt mysec
, weil sie nicht mithilfe __declspec(allocate)
von Deklarationen deklariert wurde.
j
Wechseln Sie stattdessen in den Datenabschnitt. Die ganze Zahl i
wird aufgrund des mysec
Speicherklassen-Attributs eingefügt__declspec(allocate)
.
// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}
Siehe auch
Pragma-Direktiven und die schlüsselwörter __pragma
und _Pragma