fabs函数与abs函数

fabs函数与abs函数

背景

今天在回顾我写的md时,注意到了我曾经写的一篇”震惊:fabs函数的使用注意”中对fabs函数返回值问题

瞬间,我联想到了舍友装逼写程序使用的abs函数

于是,我想看看abs函数和fabs函数有什么区别

于是我问了问AI(不要质疑我老是用AI,感觉老师也不教啊)

二者的区别

在 C 语言中,fabsabs 都是用于计算绝对值的函数,但它们在处理的数据类型所属头文件上有明显区别,具体如下:

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函数/
作者
王柏森
发布于
2025年11月16日
许可协议