Expressões MASM x Expressões C++
As diferenças mais significativas entre a avaliação da expressão MASM e a avaliação da expressão C++ são as seguintes:
Em uma expressão MASM, o valor numérico de qualquer símbolo é seu endereço de memória. Em uma expressão C++, o valor numérico de uma variável é seu valor real, não seu endereço. As estruturas de dados não têm valores numéricos. Em vez disso, eles são tratados como estruturas reais e você deve usá-los conforme necessário. O valor de um nome de função ou qualquer outro ponto de entrada é o endereço de memória e é tratado como um ponteiro de função. Se você usar um símbolo que não corresponde a um tipo de dados C++ (como um nome de módulo não modificado), ocorrerá um erro de sintaxe.
O avaliador de expressão MASM trata todos os números como valores ULONG64. O avaliador de expressão C++ converte números em ULONG64 e preserva informações de todos os tipos de dados.
O avaliador de expressão MASM permite que você use qualquer operador junto com qualquer número. O avaliador de expressão C++ vai gerar um erro se você usar um operador junto com um tipo de dados incorreto.
No avaliador de expressão MASM, toda aritmética é realizada literalmente. No avaliador de expressão C++, a aritmética do ponteiro é dimensionada corretamente e não é permitida quando inadequada.
Uma expressão MASM pode usar dois sublinhados ( __ ) ou dois pontos duas vezes ( :: ) para indicar membros de uma classe. O avaliador de expressão C++ usa apenas a sintaxe de dois pontos. A saída do depurador sempre usa dois pontos duas vezes.
Em uma expressão MASM, você deve adicionar um sinal de arroba (@) antes de todos os registros, exceto os mais comuns. Se você omitir esse sinal, o nome do registro poderá ser interpretado como um número hexadecimal ou como um símbolo. Em uma expressão C++, esse prefixo é necessário para todos os registros.
As expressões MASM podem conter referências a linhas de origem. Essas referências são indicadas por acentos graves ( ` ). Não é possível fazer referência a números de linha de origem em uma expressão C++.