Typ- und Variablen-Größen im Inlineassembly

Microsoft-spezifisch

Die LENGTH, SIZEund TYPE-Operatoren haben eine endliche Bedeutung in der Inlineassembly.Sie können nicht an allen mit dem DUP-Operator verwendet werden (da Sie Daten mit MASM-Direktiven - Operatoren oder nicht definiert).Aber Sie können sie verwenden, um die Größe von C- oder C++-Variablen oder - Typen:

  • Der LENGTH-Operator kann die Anzahl der Elemente in einem Array zurückgeben.Es gibt den Wert 1 für Nicht Array von Variablen zurück.

  • Der SIZE-Operator kann die Größe von eine oder C++-Variable zurückgeben.Die Größe einer Variablen ist das Produkt aus den LENGTH und TYPE.

  • Der TYPE-Operator kann die Größe von C oder C++-Typ oder - Variable zurückzugeben.Wenn die Variable ein Array ist, gibt TYPE die Größe eines einzelnen Elemente des Arrays zurück.

Wenn z. B. das Programm das int Array mit 8 Elementen verfügt.

int arr[8];

folgenden Ausdrücke die Assembly C und führen die Größe von arr und ihren Elementen.

__asm

C

Größe

LENGTH arr

sizeof(arr)/sizeof(arr [0])

8

SIZE arr

sizeof(arr)

32

TYPE- arr

sizeof(arr [0])

4

Microsoft ENDES bestimmten

Siehe auch

Referenz

Verwenden der Assemblysprache in __asm-Blöcken