C ++ 11的长期真是至less有64位?
它在这里和这里说的typeslong long
至less和int
一样长,并且不less于64位 。 我一直在看C ++ 11标准§3.9.1基本types部分,我找不到任何对64位的引用。 我所能find的是,至less在long int
,至less和int
一样长。 该标准列出了long long
的标准整数types,而不是一个扩展的types,所以我想知道是否这个long long
持有至less64位的断言是真实的。 如果是,它在哪里陈述? 请注意,我只是在谈论C ++ 11标准long long
而已。
C ++标准为此引用了C标准,参见[c.limits]。 LLONG_MAX
在<climits>
定义,与C的<limits.h>
的LLONG_MAX
具有相同的含义。 这就是C所说的:
5.2.4.2.1整数types的大小
<limits.h>
下面给出的值应该被适用于
#if
预处理指令的常量expression式替代。 […]其实现定义的值应与所示值相同或更大(绝对值),具有相同的符号。[…]
–
long long int
types的对象的最大值
LLONG_MAX +9223372036854775807 //
2 63 -1
必须能够表示值9223372036854775807
的签名types需要64位或更多。