OpCodes.Localloc Feld
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Weist eine bestimmte Anzahl von Bytes aus dem lokalen dynamischen Speicherpool zu und verschiebt die Adresse (einen vorübergehenden Zeiger, Typ *) des ersten zugewiesenen Byte auf den Auswertungsstapel.
public: static initonly System::Reflection::Emit::OpCode Localloc;
public static readonly System.Reflection.Emit.OpCode Localloc;
staticval mutable Localloc : System.Reflection.Emit.OpCode
Public Shared ReadOnly Localloc As OpCode
Feldwert
Hinweise
In der folgenden Tabelle sind das Hexadezimal- und Microsoft MSIL-Assemblyformat (Intermediate Language) der Anweisung zusammen mit einer kurzen Referenzzusammenfassung aufgeführt:
| Format | Assemblyformat | Description |
|---|---|---|
| FE 0F | localloc | Zuordnen von Speicherplatz aus dem lokalen Heap. |
Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:
Die Anzahl der bytes, die zugewiesen werden sollen, wird auf den Stapel verschoben.
Die Anzahl der Bytes wird aus dem Stapel angezeigt; ein Speicherbetrag, der der Größe entspricht, wird vom lokalen Heap zugewiesen.
Ein Zeiger auf das erste Byte des zugewiesenen Speichers wird auf den Stapel verschoben.
Die localloc Anweisung weist byte size (Typ natural unsigned int) aus dem lokalen dynamischen Speicherpool zu und gibt die Adresse (einen vorübergehenden Zeiger, Typ *) des ersten zugewiesenen Byte zurück. Der zurückgegebene Speicherblock wird nur auf 0 initialisiert, wenn das Flag für die Initialisierung der Methode lautet true. Wenn die aktuelle Methode ausgeführt wird Ret, wird der lokale Speicherpool für die Wiederverwendung zur Verfügung gestellt.
Die resultierende Adresse wird so ausgerichtet, dass ein beliebiger primitiver Datentyp mit den stind Anweisungen (z Stind_I4. B. ) gespeichert und mithilfe der ldind Anweisungen geladen werden kann (z Ldind_I4. B. ).
Die localloc Anweisung kann nicht innerhalb eines filter, catchoder finallyfault eines Blocks erfolgen.
StackOverflowException wird ausgelöst, wenn nicht genügend Arbeitsspeicher zum Dienst der Anforderung vorhanden ist.
Die folgende Emit Methodenüberladung kann den localloc Opcode verwenden: