绝对值函数

取绝对值函数在多个头文件均有定义

一、stdlib.h

_Check_return_ int       __cdecl abs   (_In_ int       _Number);
_Check_return_ long      __cdecl labs  (_In_ long      _Number);
_Check_return_ long long __cdecl llabs (_In_ long long _Number);
_Check_return_ __int64   __cdecl _abs64(_In_ __int64   _Number);

二、cstdlib

复制代码
// <stdlib.h> has abs(long) and abs(long long)
_NODISCARD _Check_return_ inline double abs(_In_ double _Xx) noexcept /* strengthened */ {
    return _CSTD fabs(_Xx);
}

_NODISCARD _Check_return_ inline float abs(_In_ float _Xx) noexcept /* strengthened */ {
    return _CSTD fabsf(_Xx);
}

_NODISCARD _Check_return_ inline long double abs(_In_ long double _Xx) noexcept /* strengthened */ {
    return _CSTD fabsl(_Xx);
}
复制代码

同时cstdlib中#include <stdlib.h>

三、corecrt_math.h

_Check_return_ int       __cdecl abs(_In_ int _X);
_Check_return_ long      __cdecl labs(_In_ long _X);
_Check_return_ long long __cdecl llabs(_In_ long long _X);
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double _X);
_Check_return_ __inline float __CRTDECL fabsf(_In_ float _X)
{
     return (float)fabs(_X);
}

abs的用法是针对整形变量的,double型变量取绝对值为fabs, float型变量取绝对值函数为fabsf。

四、C++中带.h与不带.h的头文件

带.h的头文件是标准化之前的C++头文件;不带.h的头文件是标准化之后的C++头文件。也就是说带 .h 的头文件是旧标准的,如果想用新的标准的头文件就不要带 .h。

但大多数编译器厂商依然提供旧版本头文件,以求向下兼容。

五、C++中前有c与前没有c的头文件

为了和C语言兼容,C++标准化过程中,原有C语言头文件标准化后,头文件名前带个c字母

posted @   ImreW  阅读(216)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示