Megosztás a következőn keresztül:


Fordító figyelmeztetése (1. szint) C4731

'pointer' : frame pointer register 'register' by inline assembly code

Megjegyzések

A rendszer módosított egy keretmutató-regisztert. Mentse és állítsa vissza a regisztert a beágyazott szerelvényblokkban vagy keretváltozóban (a módosított regisztertől függően helyi vagy paraméter), vagy előfordulhat, hogy a kód nem működik megfelelően.

Example

Az alábbi példa c4731-et hoz létre:

// C4731.cpp
// compile with: /W1 /LD
// processor: x86
// C4731 expected
void bad(int p) {
   __asm
   {
      mov ebp, 1
   }

   if (p == 1)
   {
      // ...
   }
}

Az EBP a keretmutató (az FPO nincs engedélyezve), és módosul. Ha p később hivatkoznak rá, a hivatkozás a következőhöz EBPviszonyítva történik: . De EBP felülírta a kód, így a program nem fog megfelelően működni, és akár hibát is okozhat.