Tailles de type et de variable dans un assembly inline
Spécifique à Microsoft
Les opérateurs de LONGUEUR, de SIZE, et de TYPE ont une signification limitée dans l'assembly inline.Ils ne peuvent pas être utilisés du tout avec l'opérateur d' DUP (car vous ne pouvez pas définir de données avec les directives ou les opérateurs de MASM.Mais vous pouvez les utiliser pour rechercher la taille C ou des variables ou des types C++ :
L'opérateur de LONGUEUR peut retourner le nombre d'éléments dans un tableau.Il retourne la valeur 1 pour les variables non-tablelles.
L'opérateur de SIZE peut retourner la taille du c ou de la variable C++.la taille d'une variable est le produit de son LONGUEUR et TYPE.
L'opérateur de TYPE peut retourner la taille du c ou le type ou la variable C++.Si la variable est un tableau, TYPE retourne la taille d'un seul élément du tableau.
Par exemple, si votre programme a un tableau d' int de 8 éléments,
int arr[8];
C et les expressions suivants d'assembly obtenir la taille d' arr et de ses éléments.
__asm |
C |
Taille |
---|---|---|
arr deLONGUEUR |
sizeof(arr/sizeof(arr [0]) |
8 |
arr deSIZE |
sizeof(arr) |
32 |
arr deTYPE |
sizeof(arr [0]) |
4 |
détail de FIN Microsoft