Partilhar via


Aviso do compilador (nível 1) C4537

«object» : «operador» aplicado ao tipo não UDT

Observações

Uma referência foi passada onde um objeto (tipo definido pelo usuário) era esperado. Uma referência não é um objeto, mas o código assembler embutido não é capaz de fazer a distinção. O compilador gera código como se o objeto fosse uma instância.

Example

O exemplo a seguir gera C4537 e mostra como corrigi-lo:

// C4537.cpp
// compile with: /W1 /c
// processor: x86
struct S {
    int member;
};

void f1(S &s) {
    __asm mov eax, s.member;   // C4537
    // try the following code instead
    // or, make the declaration "void f1(S s)"
    /*
    mov eax, s
    mov eax, [eax]s.member
    */
}