整数的最大大小是多少(x86)?

时间:2013-05-21 12:18:34

标签: winapi visual-c++ integer win64

我要将VC ++ 2008升级到VC ++ 2010或2012.升级之前我有一些问题:

  • 我的编译器只支持最大的__int64整数。 VC ++ 2010,2012等版本是否支持__int128

  • 我当前的编译器不支持_WIN64_WIN32之类的内容来检查Windows平台。但我怀疑_INTEGRAL_MAX_BITS是另一种解决方案;如果它在Win32中运行,则为64,否则为128。这是真的吗?

2 个答案:

答案 0 :(得分:1)

在C ++标准中,有一个专门的部分可以满足您的需求,简而言之,<limits> and the included methods可以解决您的问题。

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

答案 1 :(得分:1)

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

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