常见数据类型的长度是多少?

时间:2008-10-02 18:48:09

标签: c++ 64-bit types

int包含多少字节以及long包含多少字节?

上下文:

  • C ++
  • 32位计算机
  • 64位计算机上有什么区别吗?

8 个答案:

答案 0 :(得分:7)

答案 1 :(得分:7)

它是特定于平台和编译器的。在c或c ++中执行sizeof(int)和sizeof(long)。

答案 2 :(得分:5)

(我假设你在谈论C / C ++)

它依赖于实现,但此规则应始终有效:

sizeof(短)< = sizeof(int)< = sizeof(long)

答案 3 :(得分:2)

正如其他人不断说的那样,它取决于您正在使用的编译器(甚至是您选择的编译器选项)。

但是,实际上,对于许多32位计算机的编译器,您会发现: -

  • char:8位
  • 短:16位
  • int:32位
  • long:32位
  • long long:64位(如果支持)

C标准基本上说 long 不能短于 int int 不能短于 short ,等...

对于64位CPU,这些CPU通常不会更改,但是 MUST 要注意指针和整数通常不一样:

 sizeof(int) != sizeof(void*)

答案 4 :(得分:1)

这取决于编译器。

在32位系统上,int和long都包含32位。 在16位系统上,int是16位,long是32。

还有其他组合!

答案 5 :(得分:1)

我认为这取决于您使用的硬件。在32位平台上,int和long通常为4个字节。在C中,您可以使用sizeof()运算符来查找。

int intBytes;
long longBytes;
intBytes= sizeof(int);
longBytes = sizeof(long);

我不确定64位架构上是否长到8个字节,或者它是否为4。

答案 6 :(得分:0)

这取决于你的编译器。和你的语言一样。尝试提出更具体的问题。

答案 7 :(得分:0)

这在很大程度上取决于您使用的语言。

在C中,“int”将始终是处理器的字长。 32位架构上的32位或4字节。