使用Visual C ++ 2017版本,以下示例代码(如https://msdn.microsoft.com/en-us/library/bb384811.aspx所示)正在运行,但未处理异常。
// Compile this sample with: /EHsc
#include <iostream>
#include <intrin.h>
using namespace std;
union {
__m128i m;
unsigned __int64 ui64[2];
} source, descriptor, result1, result2, result3;
int
main()
{
source.ui64[0] = 0xfedcba9876543210ll;
descriptor.ui64[0] = 0x0000000000000b1bll;
result1.m = _mm_extract_si64 (source.m, descriptor.m); // here unhandled-exception occurs
result2.m = _mm_extracti_si64(source.m, 27, 11);
result3.ui64[0] = (source.ui64[0] >> 11) & 0x7ffffff;
cout << hex << "result1 = 0x" << result1.ui64[0] << endl;
cout << "result2 = 0x" << result2.ui64[0] << endl;
cout << "result3 = 0x" << result3.ui64[0] << endl;
}
我正在Windows 7 Ultimate和Intel Core i3 4030U处理器上使用VS 2017运行此程序。 这是怎么了怎么解决?请提出建议。