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

C++ 常见数据类型的长度是多少?,c++,64-bit,types,C++,64 Bit,Types,int包含多少字节,long包含多少字节 背景: C++ 32位计算机 64位计算机上有什么不同吗 请参见。这取决于编译器 在32位系统上,int和long都包含32位。 在16位系统上,int是16位,long是32位 还有其他的组合 这取决于您的编译器。还有你的语言。试着问一个更具体的问题。它是特定于平台和编译器的。在C或C++中做siZof(int)和sisiof(long)。 (我想你说的是C/C++) 它取决于实现,但此规则应始终有效: sizeof(short)这在很大程度上取决于

int包含多少字节,long包含多少字节

背景:

  • C++
  • 32位计算机
  • 64位计算机上有什么不同吗

请参见。

这取决于编译器

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


还有其他的组合

这取决于您的编译器。还有你的语言。试着问一个更具体的问题。

它是特定于平台和编译器的。在C或C++中做siZof(int)和sisiof(long)。 (我想你说的是C/C++)

它取决于实现,但此规则应始终有效:


sizeof(short)这在很大程度上取决于您使用的语言


在C语言中,“int”始终是处理器的字长。因此,32位体系结构上的32位或4字节

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

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

我不确定64位体系结构上的long是变成8字节,还是保持为4字节。

正如其他人没完没了地说的那样,它取决于您使用的编译器(甚至是您选择的编译器选项)

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

  • 字符:8位
  • 短:16位
  • int:32位
  • 长:32位
  • 长:64位(如果支持)
C标准基本上说一个长的不能短于一个短的int,等等

对于64位CPU,它们通常不会更改,但您必须注意指针和整数的大小通常不相同:

 sizeof(int) != sizeof(void*)

实际上,对于64位Unix,它确实发生了变化:long是64位的。虽然这在理论上可以回答这个问题,但在这里包含答案的基本部分,并提供链接供参考。