C ++ 11的长期真的至少是64位吗?

时间:2012-04-07 08:49:29

标签: c++ c++11

herehere类型long long类型至少与int一样长,且不少于64位。我一直在看C ++ 11标准§3.9.1基本类型部分,我找不到任何64位的引用。我所能找到的是它至少与long int一样长,至少与int一样长。该标准将long long列为标准整数类型,而不是扩展,因此我想知道long long所持的此断言是否成立至少64位是真的。如果是,它在哪里陈述? 请注意,我所说的只是C ++ 11标准long long

1 个答案:

答案 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位或更多。