C++:int的默认长度是多少?

aug*_*tin 3 c++

我一直在寻找一段时间,但无法找到这个看似简单的问题的明确答案:int的默认长度是多少?

我知道默认情况下会签署一个int.但它是短期还是长期?

根据以下页面中的"基本数据类型"表,默认情况下int是一个long int(4个字节). http://www.cplusplus.com/doc/tutorial/variables/

它总是正确的,还是取决于操作系统(32位/ 64位),编译器还是其他东西?

unw*_*ind 13

这取决于编译器实现者.一个int被认为是该平台最好的"原生"的长度.这里最好的原生通常是指目标处理器使用的最方便/高效/快速的尺寸.通常,您可以期望int与处理器(整数)寄存器具有相同的大小.

正如其他人所指出的那样,编译器必须遵守各种整数类型大小的某些关系,因此实现者不能自由选择任何东西.例如,int不能大于long,等等.

您经常谈论与这些问题相关的编程模型,例如,编译器可以根据所选模型选择使各种类型的大小不同.


dan*_*n04 10

该标准仅要求:

  • 范围至少为±32767(即至少16位)
  • int不短于short和不长于long.它的大小可能与其中一个相同,或两者都不相同.

整数类型的确切大小取决于编译器.在事实上的标准

  • char 是8位
  • short 是16位
  • int 在16位系统上是16位,在32位和64位系统上是32位
  • long 可以是32位或64位

  • +1有时我希望我可以接受一个以上的答案,因为许多答案是互补的。谢谢。 (2认同)