c - fpclassify(x) == FP_NAN 在功能上是否等同于 isnan(x)?
问题描述
功能fpclassify(x) == FP_NAN
上等同于?isnan(x)
同样的问题适用于:
fpclassify(x) == FP_INFINITE
对比isinf(x)
fpclassify(x) == FP_NORMAL
对比isnormal(x)
fpclassify(x) == FP_SUBNORMAL
对比issubnormal(x)
fpclassify(x) == FP_ZERO
对比iszero(x)
如果它们在功能上是等效的,那么为什么需要重复呢?
解决方案
它们在功能上是等效的。但是fpclassify
允许您执行单个测试并使用一个switch
语句,这可能比链式 // 块用于执行逐个类型检查的速度稍快和/或生成更简单的代码if
(假设else if
它自己有有效的方法来区分自己;不会t 发誓),例如根据cppreference 示例:else
fpclassify
const char *show_classification(double x) {
switch(fpclassify(x)) {
case FP_INFINITE: return "Inf";
case FP_NAN: return "NaN";
case FP_NORMAL: return "normal";
case FP_SUBNORMAL: return "subnormal";
case FP_ZERO: return "zero";
default: return "unknown";
}
}
推荐阅读
- assembly - 有没有办法用 xor 翻转 32 位浮点数的符号位?
- excel - 如何在图表中实现循环范围
- reactjs - React DnD - 如何获取拖动项目的ID
- python-3.x - 用函数中的字典中的键和值定义变量?
- javascript - 有什么方法可以将自定义元素的模板标记和样式保留在 javascript 字符串之外?
- python-3.x - 将 tensorflow.python.data.ops.dataset_ops.DatasetV1Adapter 转换为 tensorflow 数据集
- django - 使用 auto_now_add 时如何让现有条目为空?
- python - 有没有办法从 Python 内部直接引用命名空间及其属性?
- php - 如何使用条件 Wordpress 语句将特定代码从页脚传递到特定页面
- javascript - 检测 offsetTop 变化