内联程序集中的类型和变量大小

Microsoft 专用

LENGTHSIZETYPE 运算符在内联程序集中具有有限的含义。 无法将这些运算符与 DUP 运算符一起使用(因为您无法利用 MASM 指令或运算符定义数据)。 但是,您可以使用它们来查找 C 或 C++ 变量或类型的大小:

  • LENGTH 运算符可返回数组中的元素数。 它为非数组变量返回值 1。

  • SIZE 运算符可返回 C 或 C++ 变量的大小。 变量的大小是其 LENGTHTYPE 的结果。

  • TYPE 运算符可返回 C 或 C++ 类型或变量的大小。 如果变量为数组,则 TYPE 返回数组的单个元素的大小。

例如,如果您的程序具有一个 8 元素 int 数组,

int arr[8];

则下列 C 和程序集表达式将生成 arr 及其元素的大小。

__asm

C

大小

LENGTH arr

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

8

SIZE arr

sizeof(arr)

32

TYPE arr

sizeof(arr[0])

4

结束 Microsoft 专用

请参见

参考

在 __asm 块中使用汇编语言