fabs函数与abs函数
fabs函数与abs函数
背景
今天在回顾我写的md时,注意到了我曾经写的一篇”震惊:fabs函数的使用注意”中对fabs函数返回值问题
瞬间,我联想到了舍友装逼写程序使用的abs函数
于是,我想看看abs函数和fabs函数有什么区别
于是我问了问AI(不要质疑我老是用AI,感觉老师也不教啊)
二者的区别
在 C 语言中,fabs 和 abs 都是用于计算绝对值的函数,但它们在处理的数据类型和所属头文件上有明显区别,具体如下:
1. 处理的数据类型不同
abs函数:仅用于计算整数(int类型) 的绝对值。例如:abs(-5)的结果是5(整数)。fabs函数:用于计算浮点数(double类型) 的绝对值。例如:fabs(-3.14)的结果是3.14(双精度浮点数)。
2. 所属头文件不同
abs函数:定义在<stdlib.h>头文件中,使用前需包含:#include <stdlib.h>fabs函数:定义在<math.h>头文件中,使用前需包含:#include <math.h>(注意:部分编译器可能需要链接数学库,如 GCC 需加-lm选项)
3. 扩展函数(针对其他类型)
为了处理更多数据类型,C 语言还提供了以下扩展函数:
labs:计算长整数(long int)的绝对值(头文件<stdlib.h>)。llabs:计算长长整数(long long int)的绝对值(头文件<stdlib.h>)。fabsf:计算单精度浮点数(float)的绝对值(头文件<math.h>)。fabsl:计算长双精度浮点数(long double)的绝对值(头文件<math.h>)。
总结
| 函数 | 处理类型 | 头文件 | 示例 |
|---|---|---|---|
abs |
int(整数) |
<stdlib.h> |
abs(-10) → 10 |
fabs |
double(浮点数) |
<math.h> |
fabs(-3.14) → 3.14 |
使用时需根据变量类型选择对应函数,避免因类型不匹配导致错误(例如用 abs 处理浮点数会截断小数部分)。
星皓你搞错了,abs函数是<stdlib.h>头文件中的,你把我害的好惨啊,我要在你勾吧上写一个惨字!!!
同时也要谢谢你让我学习了新知识
(不知道星皓会不会视奸我的blog,又会不会在视奸我的时候看到这篇不起眼的markdown)
fabs函数与abs函数
http://example.com/2025/11/16/fabs函数与abs函数/