Compartilhar via


Expressões MASM versus 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, elas são tratadas como estruturas reais e você deve usá-las adequadamente. 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 tipo 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++ gera um erro se você usar um operador junto com um tipo de dados incorreto.

  • No avaliador de expressão MASM, toda a aritmética é executada 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 dois dois-pontos ( :: ) para indicar membros de uma classe. O avaliador de expressão C++ usa apenas a sintaxe de dois-dois-pontos. A saída do depurador sempre usa dois dois pontos.

  • Em uma expressão MASM, você deve adicionar um sinal de at (@) antes de todos, exceto os registros mais comuns. Se você omitir isso no 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 ( ` ). Você não pode referenciar números de linha de origem em uma expressão C++.

Confira também

Números e operadores MASM

Números e operadores C++

Exemplos de expressões mistas

Assinar Extensão