Expresiones de MASM frente a expresiones de C++

Las diferencias más significativas entre la evaluación de expresiones MASM y la evaluación de expresiones de C++ son las siguientes:

  • En una expresión MASM, el valor numérico de cualquier símbolo es su dirección de memoria. En una expresión C++, el valor numérico de una variable es su valor real, no su dirección. Las estructuras de datos no tienen valores numéricos. En su lugar, se tratan como estructuras reales y debe usarlas en consecuencia. El valor de un nombre de función o cualquier otro punto de entrada es la dirección de memoria y se trata como puntero de función. Si usa un símbolo que no se corresponde con un tipo de datos de C++ (por ejemplo, un nombre de módulo sin modificar), se produce un error de sintaxis.

  • El evaluador de expresiones MASM trata todos los números como valores ULONG64. El evaluador de expresiones C++ convierte números en ULONG64 y conserva la información de tipo de todos los tipos de datos.

  • El evaluador de expresiones MASM permite usar cualquier operador junto con cualquier número. El evaluador de expresiones C++ genera un error si usa un operador junto con un tipo de datos incorrecto.

  • En el evaluador de expresiones MASM, toda la aritmética se realiza literalmente. En el evaluador de expresiones C++, la aritmética de puntero se escala correctamente y no se permite cuando no es apropiado.

  • Una expresión MASM puede usar dos caracteres de subrayado ( __ ) o dos puntos dos veces ( :: ) para indicar miembros de una clase. El evaluador de expresiones C++ solo usa la sintaxis de dos puntos. La salida del depurador siempre usa dos puntos.

  • En una expresión MASM, debe agregar una arroba (@) antes de todo, excepto para los registros más comunes. Si lo omite la arroba, el nombre del registro puede interpretarse como un número hexadecimal o como un símbolo. En una expresión C++, este prefijo es necesario para todos los registros.

  • Las expresiones MASM pueden contener referencias a líneas de origen. Estas referencias se indican mediante acentos graves ( ` ). No se puede hacer referencia a números de línea de origen en una expresión C++.

Consulte también

Números y operadores de MASM

Números y operadores de C++

Ejemplos de expresiones mixtas

Extensión de signos