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

时间:2017-06-15 18:40:15

标签: c++ types portability int64 long-long

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

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

在C ++中支持64位整数的好方法是什么?

1 个答案:

答案 0 :(得分:7)

uint64_t是:

  

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

您可以阅读ref

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

  

类型long longunsigned long long是标准C和标准C ++类型,每个类型至少有64位。我知道的所有编译器都提供这些类型,但可能在-pedantic模式下,但在这种情况下,{C} 2011编译器将无法使用int64_tuint64_t 。 “

g ++ / clang支持long long / int64_t的日期是什么日期?

  

GCC 4.3(又名March 5, 2008)。

正如DavidÁlvarez所说。