编译器支持最低版本要求:
- GCC: Yes
- MSVC: Yes
- Clang: Yes
提案: N1811
C++11增加了long long和unsigned long long类型,其实在这之前有些编译器实现和一些第三方库也都提供了类似的类型。在C++11中long long类型在不同平台具有不同的长度,但至少是64位(8字节)。在写常数字面量时,可以使用LL后缀(或是ll)标识一个long long类型的字面量,相对地,用ULL(或ull, Ull, uLL)标识一个unsigned long long类型字面量,比如:
long long lli = -1000000000000000LL;
long long int lli2 = -1000000000000000LL;
unsigned long long ulli = -1000000000000000ULL;
unsigned long long int ulli2 = -1000000000000000ULL;
C++11中有一些与long long等价的类型定义,比如long long int,signed long long和signed long long int。相对的,unsigned long long与unsigned long long int也是等价的。
在<climits>或<limits.h>中定义了LLONG_MAX, LLONG_MIN和ULLONG_MAX三个宏,分别代表在该编译器支持的平台上long long的最大值和最小值以及unsigned long long的最大值。
在用标准库函数printf进行格式化输出时,则分别使用%lld和%llu来标识long long和unsigned long long类型的变量。