Typen- und Variablengrößen in der Inlineassembly
Microsoft-spezifisch
LÄNGE, GRÖSSE und TYP-Operatoren haben eine bestimmte Bedeutung im Inlineassembly. Sie können nicht an allen mit dem Operator DUP verwendet werden (da Sie Daten mit MASM-Direktiven oder Operatoren definieren können). Aber Sie können sie verwenden, um die Größe von C oder C++-Variablen oder Typen zu finden:
Der Operator LÄNGE kann die Anzahl der Elemente in einem Array zurückgeben. Es gibt den Wert 1 für NichtArrayvariablen zurück.
Der Operator GRÖSSE kann die Größe von einem oder aus C++-Variable zurückgeben. Die Größe eine Variable ist das Produkt seiner LÄNGE und TYP.
Der Operator TYP kann die Größe von einem oder C++-Typ oder und zurückgeben. Wenn die Variable ein Array handelt, gibt TYP die Größe eines einzelnen Elements des Arrays zurück.
Wenn beispielsweise das Programm int ein Array mit 8 Elementen hat,
int arr[8];
folgenden C und die Assemblyausdrücke führen die Größe von arr und von den Elementen.
__asm |
C |
Größe |
---|---|---|
LÄNGE arr |
sizeof(arr)/sizeof(arr [0]) |
8 |
GRÖSSE arr |
sizeof(arr) |
32 |
TYP arr |
sizeof(arr [0]) |
4 |
END Microsoft-spezifisch