Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 de 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 de cualquier otro punto de entrada es la dirección de memoria y se interpreta como un 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 de 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 de 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 de C++, la aritmética de punteros se escala correctamente y no se permite cuando es inapropiada.
Una expresión MASM puede usar dos caracteres de subrayado ( __ ) o dos dos puntos ( :: ) para indicar miembros de una clase. El evaluador de expresiones de C++ solo usa la sintaxis de dos puntos. La salida del depurador siempre usa dos puntos.
En una expresión MASM, debe agregar un signo de arroba (@) antes de todos los registros excepto los más comunes. Si lo omite en el signo, el nombre del registro puede interpretarse como un número hexadecimal o como un símbolo. En una expresión de 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 de C++.