取绝对值函数在多个头文件均有定义
一、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字母
标签:__,return,函数,cdecl,long,绝对值,头文件,Check From: https://www.cnblogs.com/imreW/p/16908126.html