如果我理解正确,则ilogb()也会处理0和NaN参数(并返回FP_ILOGB0和FP_ILOGBNAN),而logb()会引发域错误。据我所知,没有理由使用logb()。这两个函数之间是否还有其他区别,是否有任何理由logb()代替ilogb()?
除了返回类型和函数参数为零、无穷大或 NaN 时的返回值之外,函数之间的返回值没有区别。
\n为了ilogb:
\n\n如果 arg 不为零、无限或 NaN,则返回的值完全等于
\nstatic_cast<int>(std::logb(arg))
然而,与 POSIX 标准相比,函数的使用略有不同。
\n为了ilogb:
\n\nPOSIX 要求如果
\narg为零、无穷大、NaN 或正确结果超出 的范围,则发生域错误int。POSIX 还要求,在符合 XSI 的系统上,当正确结果大于
\nINT_MAXis时返回值INT_MAX以及当正确结果小于INT_MINis时返回值INT_MIN。
为了logb:
\n\nPOSIX 要求如果 arg 为 则发生极点错误
\n\xc2\xb10。
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |