我的int有什么问题?

时间:2011-08-01 17:02:10

标签: c size int

我尝试使用以下命令:

 __m128i b = _mm_set_epi32 (y, y, x, x);

y和x是整数。

在我运行调试器的地方,我看到b的类型为: unsigned __int64 [2]

我打算将b设为4个整数,每个32位(我想这就是他们在这里所说的: http://msdn.microsoft.com/en-us/library/019beekt.aspx

你知道我的代码是什么吗?

由于

2 个答案:

答案 0 :(得分:3)

我没有看到问题 - 128位整数由两个64位整数表示,这是64位Intel CPU可以处理的SSE寄存器之外的最大本机类型。

您的调试器可能显示“真实”类型,而不是typedefed或macro'd类型。

答案 1 :(得分:0)

Typedef是别名,你的调试器会向你显示__m128i别名的值。在C中,定义新类型的唯一真正方法是通过struct关键字;所有其他技术(typedef等)导致类型别名,可以用它们的等价物替换。

假设这是真的,除了显示的方式与您预期的不同之外,还有其他问题吗?