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.
Belegt eine bestimmte Anzahl von Bytes aus dem lokalen dynamischen Speicherpool und legt die Adresse (einen flüchtigen Zeiger, Typ *
) des ersten reservierten Bytes auf dem Auswertungsstapel ab.
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 MSIL-Assemblyformat (Microsoft Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:
Format | Assemblyformat | BESCHREIBUNG |
---|---|---|
FE 0F | localloc | Zuordnen von Speicherplatz aus dem lokalen Heap. |
Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:
Die Anzahl der zuzuordnenden Bytes wird in den Stapel gepusht.
Die Anzahl der Bytes wird aus dem Stapel geknallt; Eine Der Größe entsprechende Speichermenge wird vom lokalen Heap zugeordnet.
Ein Zeiger auf das erste Byte des zugeordneten Speichers wird auf den Stapel gepusht.
Die localloc
Anweisung ordnet size
Bytes (Typ natural unsigned int
) aus dem lokalen dynamischen Speicherpool zu und gibt die Adresse (ein vorübergehender Zeiger, Typ *
) des ersten zugeordneten Byte zurück. Der zurückgegebene Speicherblock wird nur dann auf 0 initialisiert, wenn das Initialisierungsflag für die -Methode lautet true
. Wenn die aktuelle Methode einen Retausführt, wird der lokale Speicherpool zur Wiederverwendung zur Verfügung gestellt.
Die resultierende Adresse wird so ausgerichtet, dass ein beliebiger primitiver Datentyp dort mithilfe der stind
Anweisungen (z Stind_I4. B. ) gespeichert und mithilfe der ldind
Anweisungen (z Ldind_I4. B. ) geladen werden kann.
Die localloc
-Anweisung kann nicht innerhalb eines filter
- , catch
- finally
oder fault
-Blocks auftreten.
StackOverflowException wird ausgelöst, wenn nicht genügend Arbeitsspeicher zum Verarbeiten der Anforderung vorhanden ist.
Die folgende Emit Methodenüberladung kann den localloc
Opcode verwenden: