Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
"main" : a _m64 és a lebegőpontos kifejezések összekeverése helytelen kódhoz vezethet
Megjegyzések
A függvények __m64 és float/double típusokat használnak. Mivel az MMX és a lebegőpontos regiszterek ugyanazt a fizikai regiszterterületet használják (egyidejűleg nem használhatók), az ugyanabban a függvényben használt __m64 és float/double típusok adatsérülést okozhatnak, ami kivételt okozhat.
Ha ugyanabban a függvényben biztonságosan szeretné használni __m64 a típusokat és a lebegőpontos típusokat, az egyik típust használó összes utasítást el kell különíteni a _m_empty() ( MMX esetén) vagy _m_femms() ( 3DNow!esetén) belső utasítással.
Example
Az alábbi példa C4730-at hoz létre:
// C4730.cpp
// compile with: /W1
// processor: x86
#include "mmintrin.h"
void func(double)
{
}
int main(__m64 a, __m64 b)
{
__m64 m;
double f;
f = 1.0;
m = _m_paddb(a, b);
// uncomment the next line to resolve C4730
// _m_empty();
func(f * 3.0); // C4730
}