共用方式為


編譯器警告 (層級 1) C4730

'main' :混合_m64和浮點表達式可能會導致不正確的程序代碼

函式會使用 __m64float/double 型別。 由於MMX和浮點緩存器會共用相同的實體緩存器空間(無法同時使用),因此使用 __m64 float/double 和相同函式中的型別可能會導致數據損毀,因而造成例外狀況。

若要在相同的函式中安全地使用__m64類型和浮點類型,使用其中一種類型的每個指令都應該以 _m_empty() 或 _m_femms(適用於 3DNow!) 內建分隔。

下列範例會產生 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
}