here和here类型long long
类型至少与int
一样长,且不少于64位。我一直在看C ++ 11标准§3.9.1基本类型部分,我找不到任何64位的引用。我所能找到的是它至少与long int
一样长,至少与int
一样长。该标准将long long
列为标准整数类型,而不是扩展,因此我想知道long long
所持的此断言是否成立至少64位是真的。如果是,它在哪里陈述?
请注意,我所说的只是C ++ 11标准long long
。
答案 0 :(得分:36)
C ++标准引用了C标准,参见[c.limits]。 LLONG_MAX
中定义了<climits>
,其含义与C <limits.h>
LLONG_MAX
的含义相同。这就是C所说的:
5.2.4.2.1整数类型的大小
<limits.h>
下面给出的值应替换为适用于
#if
预处理指令的常量表达式。 [......]它们的实现定义值的大小(绝对值)应等于或大于显示的值,并带有相同的符号。[...]
- 类型为
的对象的最大值long long int
LLONG_MAX +9223372036854775807 //
2 63 -1
必须能够表示值9223372036854775807
的签名类型需要64位或更多。