Tamaño del tipo y la variable de ensamblado en línea
Específicos de Microsoft
Los operadores de Longitud, de CALIBRE, y de TYPE tienen un significado limitado de ensamblado en línea.No se pueden utilizar en absoluto con el operador de DUP (porque no puede definir datos con las directivas o los operadores de MASM).Pero puede utilizarlos para encontrar el tamaño de C o variables o tipos de C++:
El operador de Longitud puede devolver el número de elementos de una matriz.devuelve el valor 1 para las variables de la no-matriz.
El operador de CALIBRE puede devolver el tamaño de C/C++. o variable de C++.El tamaño de una variable es el producto del Longitud y TYPE.
El operador de TYPE puede devolver el tamaño de C/C++. o tipo o variable de C++.Si la variable es una matriz, TYPE devuelve el tamaño de un único elemento de la matriz.
Por ejemplo, si el programa tiene una matriz de int de 8 elementos,
int arr[8];
c y las expresiones siguientes de ensamblado hacen que el tamaño de arr y sus elementos.
__asm |
C |
Size |
---|---|---|
Matriz deLongitud |
sizeof()/sizeof(arr [0] de arr) |
8 |
Matriz deCALIBRE |
sizeof(arr) |
32 |
Matriz deTYPE |
sizeof(arr [0]) |
4 |
Específico de Microsoft de FINAL