什么是 gdb 中的 inf
What is inf in gdb
我正在调试一个C++程序。有一个双精度类型的变量x
,gdb 将其值打印为inf
。然而,即使x
的值没有更改,以下表达式也会返回false
x == std::numeric_limits<double>::max()
当 gdb 说inf
时,它不是指此类型(双精度)的最大可能值吗?如果不是,那是什么意思?
这意味着x == std::numeric_limits<double>::infinity()
.
浮点实现不一定必须支持无穷大,但常见的浮点实现(IEEE754)支持无穷大。
从 C++11 开始,您可以使用std::isinf(x)
来测试浮点数是否无限。
不,无穷大不是最大值;从这个意义上说,它根本不是一个"值"。
无穷大与 NaN 一样,是您的IEEE754浮点数可以采用的"特殊值"。它们中的两个表现出不寻常的属性(例如 NaN != NaN),并且不会位于您选择的浮点类型的数字范围内的数字行上。
虽然 1.79769e+308(在我的系统上std::numeric_limits<double>::max()
)是一个非常大的数字,但它离无穷大还有很长的路要走。介于两者之间的每个潜在值(实际上有无穷大)在这种类型中都是不可表示的。"min"和"max"函数对于double
的数值域是没有用的,如果它们只是返回-inf
和inf
。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 将字符串存储在c++中的稳定内存中
- 文本文件中的单词链表
- 递归函数计算序列中的平方和(并输出过程)
- 如何从C++中的依赖类型中获得它所依赖的类型
- C++中的"inline"关键字
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 用C++中的一个变量定义一个常量
- vector.resize()中的分配错误
- 使用指针从C++中的数组中获取最大值
- arr[-1]在c++中的奇怪行为
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 是否可以将"inf"分配给变量,例如 c++ 中的常规数值
- 什么是 gdb 中的 inf