我想知道在fabs
上使用fabsf
(来自cmath / math.h)的情况是什么?
或解释看到的区别,因为看起来只是一个人只是打电话给对方。
我在math.h中的定义是
_Check_return_ inline float fabs(_In_ float _Xx) _NOEXCEPT
_Check_return_ __inline float __CRTDECL fabsf(_In_ float _X)
答案 0 :(得分:1)
何时使用
fabsf
而不是fabs
在C ++中,几乎没有理由使用fabsf
。使用std::abs
代替浮点类型。当您希望将整数的绝对值转换为std::fabs
时,可能会使用double
,但这可能是非常小的用例。
如果您正在编写C语言,那么它几乎就是这么简单:当您拥有fabsf
时使用float
,拥有fabs
时使用double
。同样适用于f
后缀的其他标准数学函数。
我在math.h中的定义是
_Check_return_ inline float fabs(_In_ float _Xx) _NOEXCEPT
C ++标准库指定std::fabs
的重载。其中一个需要float
。如果缺少其他重载,则标准库不符合标准。
C标准库指定double fabs(double)
。如果引用的声明适用于C。