【问题标题】:What is the maximum size of an integer (x86)?整数 (x86) 的最大大小是多少?
【发布时间】:2013-05-21 12:18:34
【问题描述】:

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

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

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

【问题讨论】:

    标签: winapi visual-c++ integer win64


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • @xersi 只是想知道列出的各种编译器的功能。
      猜你喜欢
      • 1970-01-01
      • 2013-01-09
      • 2013-02-26
      • 2012-06-30
      • 2011-03-13
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多