Compartilhar via


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++.

Confira também

Números e operadores MASM

Números e operadores C++

Exemplos de expressão mista

Extensão de sinal