它在维基百科和Stroustrup 的常见问题解答中说 typelong long
至少与 an 一样长int
并且不少于 64 bits。我一直在查看 C++11 标准 §3.9.1 基本类型部分,但找不到任何对 64 位的引用。我所能找到的只是它至少和 一样长long int
,至少和 一样长int
。标准列出long long
了标准整数类型,而不是扩展类型,所以我想知道这个long long
至少包含 64 位的断言是否正确。如果是,它在哪里说明?
请注意,我只是在谈论 C++11 标准long long
。
问问题
5225 次
1 回答
37
C++ 标准为此引用了 C 标准,请参阅 [c.limits]。LLONG_MAX
的定义与 C's的<climits>
含义相同。这就是 C 必须说的:<limits.h>
LLONG_MAX
5.2.4.2.1 整数类型的大小
<limits.h>
下面给出的值应替换为适用于
#if
预处理指令的常量表达式。[...] 它们的实现定义值的大小(绝对值)应等于或大于所示值,且符号相同。[...]
-- 类型对象的最大值
long long int
LLONG_MAX +9223372036854775807 //
2 63 -1
必须能够表示值的有符号类型9223372036854775807
需要 64 位或更多位。
于 2012-04-07T09:17:23.673 回答