Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
'main' : kombinování výrazů _m64 a plovoucí desetiny může vést k nesprávnému kódu.
Poznámky
Funkce používá __m64 a float/double typy. Vzhledem k tomu, že registry MMX a plovoucí desetiny sdílejí stejný fyzický prostor registru (nelze použít současně), může použití __m64 a float/double typy ve stejné funkci vést k poškození dat, což může způsobit výjimku.
Chcete-li bezpečně používat __m64 typy a typy s plovoucí desetinnou čárkou ve stejné funkci, musí být každá instrukce, která používá jeden z typů, oddělena vnitřními _m_empty() (pro MMX) nebo _m_femms() (pro 3DNow!).
Example
Následující příklad vygeneruje C4730:
// 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
}