编译器警告(等级 1)C4799

函数“function”没有 EMMS 指令

注解

该函数至少有一个 MMX 指令,但没有 EMMS 指令。 使用多媒体指令时,还应使用 EMMS 指令或 _mm_empty 内在函数来清除 MMX 代码末尾的多媒体标记字。

使用 ivec.h时可能会获得 C4799,指示代码在返回之前未正确执行 EMMS 指令。 这是对这些标头的错误警告。 可以通过在ivec.h中定义_SILENCE_IVEC_C4799来关闭这些设置。 但请注意,这也会使编译器无法正确发出此类型的警告。

有关详细信息,请参阅 Intel 的 MMX 指令集

Example

以下示例生成 C4799:

// C4799.cpp
// compile with: /W1
// processor: x86
#include <mmintrin.h>

int main()
{
    __m64 m = _mm_setzero_si64();

    // Uncomment the following line to resolve the warning:
    // _mm_empty();
}   // C4799