long long是8个字节,意思是什么?

时间:2015-05-12 17:45:02

标签: c++ c long-long

我已经在大多数系统上阅读了为什么sizeof(long long)为8的问题的答案,但我仍然不确定如何解释它们的含义。

给出的原因之一是,有很多代码“在那里”假设sizeof(long long) <= sizeof(size_t)。那讲得通。然后对建筑惯例和品牌等有各种各样的看法。我甚至不想进入关于大会历史的辩论。也有理由认为long long可以是任何规模的标准,但我认为这并不是我真正关心的问题。

我想知道的是如何解释sizeof(long long)返回8但long long实际为16的事实之间的差异现在。应该解释为一个仅适用于sizeof运算符的历史补余,或者是否存在与该事实关联的基础地址指针,以便long long上的操作以8字节为增量执行?

Sizeof(签名)长v4:8 值(x在2147483647)v4:7fffffff

长长的v5:8 价值(x at 9223372036854775807)v5:7fffffffffffffff

2 个答案:

答案 0 :(得分:2)

根据标准,long long至少为64位,或者说是8个字节。

在今天的大多数机器上,它长8个字节。 sizeof(BTW,运算符,而不是函数)返回其大小,您可以依赖它。当sizeof(long long)的大小为8时,long long无法16

答案 1 :(得分:1)

大多数系统上最长的标准数据类型是8字节(64位),即long long

此外,您可以包含limits.h哪个库包含每种数据类型的定义值及其在系统上占用的空间。

在我long遇到某种程度兴趣的事实中稍作更新。 保证长度至少为32位(或4字节)。所以long int(虽然在这种情况下,long是一个长度修饰符)。