1

我打算将我的 VC++ 2008 升级到 VC++ 2010 或 2012。在升级之前我有一些问题:

  • 我的编译器只支持最大的__int64整数。__int128VC++ 2010、2012等版本是否支持?

  • 我当前的编译器不支持_WIN64_WIN32检查 Windows 平台。但我怀疑_INTEGRAL_MAX_BITS是另一种解决方案;如果它64在 Win32 中运行,或者128以其他方式运行。这是真的吗?

4

2 回答 2

1

在 C++ 标准中,有一个专门用于您想要的部分,简而言之<limits>,其中包含的方法可以解决您的问题。

编辑:我假设您需要某种标准化支持,否则您应该简单地参考编译器的在线文档

于 2013-05-21T12:21:58.720 回答
1

对于您提到的所有编译器,32 位和 64 位目标都存在 64 位整数类型。但是,没有 128 位整数类型。因此,_INTEGRAL_MAX_BITS对于所有列出的编译器以及 32 位和 64 位目标,计算结果为 64。

您能做的最好的事情可能是使用 SSE2 内在函数__m128i,但这取决于处理器上是否存在 SSE2 单元。但是您无需升级即可使用它。它也可以在 VS2008 中使用。

于 2013-05-21T12:22:11.413 回答