Typen- und Variablengrößen in der Inlineassembly
Microsoft-spezifisch
Die Operatoren LENGTH, SIZE und TYPE haben eine begrenzte Bedeutung in der Inlineassembly. Sie können überhaupt nicht mit dem DUP
Operator verwendet werden (da Sie keine Daten mit MASM-Direktiven oder Operatoren definieren können). Sie können sie jedoch verwenden, um die Größe von C- oder C++-Variablen oder -Typen zu finden:
Der LENGTH-Operator kann die Anzahl der Elemente in einem Array zurückgeben. Er gibt den Wert 1 für Nicht-Arrayvariablen zurück.
Der SIZE-Operator kann die Größe einer C- oder C++-Variablen zurückgeben. Die Größe einer Variablen ist das Produkt seiner LÄNGE und DES TYPs.
Der TYPE-Operator kann die Größe eines C- oder C++-Typs oder einer Variablen zurückgeben. Wenn es sich bei der Variablen um ein Array handelt, gibt TYPE die Größe eines einzelnen Elements des Arrays zurück.
Wenn Ihr Programm beispielsweise über ein 8-Element-Array int
verfügt,
int arr[8];
die folgenden C- und Assemblyausdrücke liefern die Größe und arr
die zugehörigen Elemente.
__asm | C | Size |
---|---|---|
LÄNGEnrückstand | sizeof(arr)/sizeof(arr[0]) |
8 |
SIZE arr | sizeof(arr) |
32 |
TYPE arr | sizeof(arr[0]) |
4 |
Ende Microsoft-spezifisch
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für