我想在我的 C++ 代码中使用 64 位整数。我知道我可以#include <cstdint>
然后声明 a uint64_t
or 使用unsigned long long
(或签名版本的等效项)。
但是,似乎直到我才添加对此的支持,C++11
我希望我的代码与没有完全 C++11 支持的编译器兼容。
在 C++ 中支持 64 位整数的良好可移植方式是什么?
我想在我的 C++ 代码中使用 64 位整数。我知道我可以#include <cstdint>
然后声明 a uint64_t
or 使用unsigned long long
(或签名版本的等效项)。
但是,似乎直到我才添加对此的支持,C++11
我希望我的代码与没有完全 C++11 支持的编译器兼容。
在 C++ 中支持 64 位整数的良好可移植方式是什么?
uint64_t
是:
可选:如果不存在具有此类特征的类型,则不定义这些 typedef。
正如您可以在参考文献中看到的那样。
从我应该使用 long long 还是 int64_t 进行可移植代码?:
类型
long long
和unsigned long long
是标准 C 和标准 C++ 类型,每个类型至少有 64 位。我知道的所有编译器都提供这些类型,除非可能在某种-pedantic
模式下,但在这种情况下int64_t
,或者uint64_t
在 C++ 2011 之前的编译器中也不可用。"
g++/clang 支持long long
/int64_t
来自什么日期?
从GCC 4.3(又名2008 年 3 月 5 日)开始。
正如大卫阿尔瓦雷斯所说。