8

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

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

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

4

1 回答 1

7

uint64_t是:

可选:如果不存在具有此类特征的类型,则不定义这些 typedef。

正如您可以在参考文献中看到的那样。


我应该使用 long long 还是 int64_t 进行可移植代码?

类型long longunsigned long long是标准 C 和标准 C++ 类型,每个类型至少有 64 位。我知道的所有编译器都提供这些类型,除非可能在某种-pedantic模式下,但在这种情况下int64_t,或者uint64_t在 C++ 2011 之前的编译器中也不可用。"


g++/clang 支持long long/int64_t来自什么日期?

GCC 4.3(又名2008 年 3 月 5 日)开始。

正如大卫阿尔瓦雷斯所说。

于 2017-06-15T18:49:57.203 回答