绝对值函数
取绝对值函数在多个头文件均有定义
一、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字母
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了