【问题标题】:Is short a floating point type?short 是浮点类型吗?
【发布时间】:2018-10-22 21:30:55
【问题描述】:

我一直认为在 C++ 中short 是整数类型。

然而,维基百科在这篇文章中将其列在浮点类型下:

https://en.wikipedia.org/wiki/Machine_epsilon

我很困惑。

我很确定short 通常是一个整数,但由于 C++ 是一门巨大的语言,有很多陷阱……请问是否有合法的,即使在 C++ 中使用 short 的方式晦涩难懂作为浮点类型?

【问题讨论】:

  • short 不是浮点类型,从来都不是。
  • 快速查看C++ documentation 可以为您提供您所寻求的答案。在该页面上,它的列出不正确。
  • short 不再出现在该维基百科页面上。 Tadman 已修复它。
  • 那个维基百科页面到处都是一团糟。用于计算机器 epsilon 的 C 函数根据输入参数产生不同的值(而不仅仅是文本所暗示的符号不同),但随后文本断言特定的输出值而不说明应该传递的输入以查看它。
  • 而且.. 这是不相信你在维基百科上看到的一切的另一个原因:)

标签: c++ floating-point language-lawyer short


【解决方案1】:

不,short 不是浮点类型,它是整数类型。来自the docs

整数类型
int - 基本整数类型。如果使用下面列出的任何修饰符,则可以省略关键字 int。如果不存在长度修饰符,则保证其宽度至少为 16 位。但是,在 32/64 位系统上,几乎完全可以保证其宽度至少为 32 位(见下文)。

修饰符

修改整数类型。可以按任何顺序混合。每个组中只能有一个出现在类型名称中。

有符号性
signed - 目标类型将有符号表示(如果省略,这是默认值)
unsigned - 目标类型将有无符号表示

大小
short - 目标类型将针对空间进行优化,宽度至少为 16 位。
long - 目标类型的宽度至少为32 位。
long long - 目标类型的宽度至少为 64 位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 2020-12-12
    • 2016-09-15
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    相关资源
    最近更新 更多