Partager via


Expressions MASM et expressions C++

Les différences les plus significatives entre l’évaluation des expressions MASM et l’évaluation des expressions C++ sont les suivantes :

  • Dans une expression MASM, la valeur numérique d’un symbole est son adresse mémoire. Dans une expression C++, la valeur numérique d’une variable est sa valeur réelle, et non son adresse. Les structures de données n’ont pas de valeurs numériques. Au lieu de cela, ils sont traités comme des structures réelles et vous devez les utiliser en conséquence. La valeur d’un nom de fonction ou d’un autre point d’entrée est l’adresse mémoire et est traitée comme un pointeur de fonction. Si vous utilisez un symbole qui ne correspond pas à un type de données C++ (tel qu’un nom de module non modifié), une erreur de syntaxe se produit.

  • L’évaluateur d’expression MASM traite tous les nombres comme des valeurs ULONG64. L’évaluateur d’expression C++ convertit les nombres en ULONG64 et conserve les informations de type de tous les types de données.

  • L’évaluateur d’expression MASM vous permet d’utiliser n’importe quel opérateur avec n’importe quel nombre. L’évaluateur d’expression C++ génère une erreur si vous utilisez un opérateur avec un type de données incorrect.

  • Dans l’évaluateur d’expression MASM, toutes les arithmétiques sont effectuées littéralement. Dans l’évaluateur d’expression C++, l’arithmétique du pointeur est mise à l’échelle correctement et n’est pas autorisée quand elle est inappropriée.

  • Une expression MASM peut utiliser deux traits de soulignement ( __ ) ou deux points-virgules ( :: ) pour indiquer les membres d’une classe. L’évaluateur d’expression C++ utilise uniquement la syntaxe à deux points. La sortie du débogueur utilise toujours deux points-virgules.

  • Dans une expression MASM, vous devez ajouter un signe at (@) avant tous, à l’exception des registres les plus courants. Si vous omettez cela au signe, le nom du registre peut être interprété comme un nombre hexadécimal ou comme un symbole. Dans une expression C++, ce préfixe est requis pour tous les registres.

  • Les expressions MASM peuvent contenir des références à des lignes sources. Ces références sont indiquées par des accents graves ( ` ). Vous ne pouvez pas référencer les numéros de ligne source dans une expression C++.

Voir aussi

Numéros et opérateurs MASM

Nombres et opérateurs C++

Exemples d’expressions mixtes

Extension du Signe