【问题标题】:Why does anybody ever use int data type?为什么有人使用 int 数据类型?
【发布时间】:2014-05-08 23:00:24
【问题描述】:

在 C++ 中(我正在学习并且对它还是很陌生),我注意到几乎每个人都使用 int 数据类型。但为什么?我知道shortlonglong long 几乎都有确定的大小,但int 似乎可能是shortlong,具体取决于系统。那么,为什么人们不更具体地了解这些类型呢?如果他们在int 中输入了一个对于short 来说太大的数字,那么在某些系统上它会非常糟糕。如果您放入int 的数字小到足以放入short,那么在默认为long 的系统上,内存空间被浪费了。那么为什么大家都用int呢?

【问题讨论】:

  • C++ 中的经典整数类型都没有确定的大小。不是一个。另外,使用int 的替代方法是什么?使用shortlong?然后,您可以表达与现在完全相同的疑问。
  • long 的大小为 X”的好例子:long 在许多 64 位系统上是 64 位,但在 64 位 Windows 和大多数 32 位系统上是 32 位。许多重要的代码在流行平台上被破坏(或者直到整个项目中的每个演员都被仔细检查和更改),因为它被用于摆弄指针的算术值,而不是[u]intptr_t 或至少typedef 可以在事后进行移植。
  • 我认为程序员使用int有一些基本原因:1)它很短int与其他人相比只有3个字母2)它的the basic integer type

标签: c++ types int long-integer short


【解决方案1】:

根据标准(C++11,§3.9.1/2),

普通的ints 具有建议的自然大小 执行环境的架构;提供其他有符号整数类型以满足特殊要求 需要。

所以int 是您应该使用的类型,除非您有充分的理由使用任何其他类型,因为int 应该映射到架构经过优化以在大多数情况下使用的类型。

【讨论】:

  • 它可能应该映射到那个大部分时间,但实际上它不会:在今天的台式计算机上,ints 是 32 位,然而该平台可以处理 64 位数字。
【解决方案2】:

你说得对,int 的大小是可变的。但 short、long 和 long long 也有可变大小。所以他们不是更好的选择。

我不会推测人们为什么使用int,因为这只是我的看法。

如果你需要一个实际大小的整数,你应该使用int32_tuint32_tint64_t。这些类型具有所需的大小。

【讨论】:

  • 好的。谢谢!我使用的这本书(C++ Primer)有点令人困惑。好像说shortlong 有确定的大小。
  • @Markasoftware:您得到的唯一保证是每种类型至少与前一种类型一样大:char
  • 嗯,还有保证短至少 16位和长至少 32位。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
  • 2016-01-08
  • 1970-01-01
相关资源
最近更新 更多