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

ele*_*ora 7 c++ portability types int64 long-long

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

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

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

gsa*_*ras 7

uint64_t 是:

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

你可以阅读参考文献.


我应该使用long long或int64_t用于可移植代码吗?:

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


g ++/clang支持long long/ int64_t来自哪个日期?

GCC 4.3(又名2008年3月5日).

正如DavidÁlvarez所说.