64 位整数和旧的 C++ 编译器

64 bit integers and older C++ compilers

我想在我的 C++ 代码中使用 64 位整数。我知道我可以 #include <cstdint> 然后声明 uint64_t 或使用 unsigned long long (或签名版本的等效项)。

但是,似乎直到 C++11 才添加对此的支持,我希望我的代码与不具有完整 C++11 支持的编译器兼容。

在 C++ 中支持 64 位整数的良好可移植方式是什么?

uint64_t 是:

Optional: These typedefs are not defined if no types with such characteristics exist.

如您在 ref 中所见。


来自 Should I use long long or int64_t for portable code?:

The types long long and unsigned long long are standard C and standard C++ types each with at least 64 bits. All compilers I'm aware of provide these types, except possibly when in a -pedantic mode but in this case int64_t or uint64_t won't be available with pre-C++ 2011 compilers, either. "


g++/clang 从什么时候开始支持 long long/int64_t

Since GCC 4.3 (aka March 5, 2008).

正如 David Álvarez 提到的那样。