【发布时间】:2019-01-06 06:12:45
【问题描述】:
在 Microsoft Visual Studio 2017 Community Edition 中有以下文件:
“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\SDK\ScopeCppSDK\SDK\include\shared\intsafe.h”
16 字节整数的最大值如下:
#define UINT128_MAX 0xffffffffffffffffffffffffffffffffui128
我还在limits文件中找到了如下代码
“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\SDK\ScopeCppSDK\VC\include\limits.h”
#if _INTEGRAL_MAX_BITS >= 128
// minimum signed 128 bit value
#define _I128_MIN (-170141183460469231731687303715884105727i128 - 1)
// maximum signed 128 bit value
#define _I128_MAX 170141183460469231731687303715884105727i128
// maximum unsigned 128 bit value
#define _UI128_MAX 0xffffffffffffffffffffffffffffffffui128
#endif
这是灰色的,好像_INTEGRAL_MAX_BITS >= 128 没有定义。
而且我在任何地方都找不到 128 位整数的数据类型。 MS C 或 C++ 可以处理这么大的值吗?我有一台新电脑,它应该能够处理这么大的整数的数学运算。 TIA。
【问题讨论】:
-
C 和 C++ 对类型没有任何上限。实现将定义自己的限制。然而,与 gcc 不同的是,MSVC 中没有 128 位整数类型,尽管其中有一些“提示”(可能是先前经验的一些残余或未来的一些东西)Can I use 128-bit integer in MSVC++?,How to enable __int128 on Visual Studio?
-
请注意,C 允许扩展整数类型,可能是 128 位不支持 128 位常量。
-
感谢您一直以来的支持,chux。
标签: c++ c visual-studio