次の方法で共有


コンパイラの警告 (レベル 1) C4537

'object': UDT 以外の型に適用された 'operator'

解説

オブジェクト (ユーザー定義型) が必要でしたが、参照が渡されました。 参照はオブジェクトではありませんが、インライン アセンブラー コードでは区別できません。 コンパイラは、オブジェクト がインスタンスの場合と同様にコードを生成します。

次の例では、C4537 を生成し、その修正方法を示しています:

// 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
    */
}