关于math.h的笔记

闲话少叙,直接来吧。

math.h

math.h作为C标准库的一部分,提供了部分数学运算函数以及数学常量。其中绝大部分函数都只在头文件内完成声明和定义,仅有部分需要链接数学库(linux)。

math.h中提供的函数的返回类型和参数类型几乎都是double。

作为标准库的一部分,为了实现兼容,math.h的内容非常复杂,很难一一列举,我仅仅举出了部分内容,仅供参考。

宏常量

  1. INFINITY : 正无穷,返回一个 float。

    #ifdef __USE_ISOC99
    /* IEEE positive infinity.  */
    # if __GNUC_PREREQ (3, 3)
    #  define INFINITY (__builtin_inff ())
    # else
    #  define INFINITY HUGE_VALF
    # endif
    
  2. NAN :非数字(Not-A-Number),返回一个float。

    /* IEEE Not A Number.  */
    # if __GNUC_PREREQ (3, 3)
    #  define NAN (__builtin_nanf (""))
    # else
    /* This will raise an "invalid" exception outside static initializers,
       but is the best that can be done in ISO C while remaining a
       constant expression.  */
    #  define NAN (0.0f / 0.0f)
    # endif
    #endif /* __USE_ISOC99 */
    

    实际上还有很多宏,无法完全列举,请查阅标准库头文件。

类型

  1. float_t : (当前系统)最有效执行 float 运算的类型,宽度至少与 float 一样。

  2. double_t : (当前系统)最有效执行 double 运算的类型,宽度至少与 double 一样。

    可能存在更多类型定义,具体视实现而定

函数

  1. 三角函数

    函数原型描述
    double acos(double x)反余弦(x为弧度制,下同)
    double asin(double x)反正弦
    double atan(double x)反正切
    double atan2(double y, double x)y/x 的反正切,y 和 x 的符号决定象限
    double cos(double x)余弦
    double sin(double x)正弦
  2. 双曲函数

    函数原型描述
    double cosh(double x)双曲余弦
    double sinh(double x)双曲正弦
    double tanh(double x)双曲正切
  3. 指数,对数函数

    函数原型描述
    double exp(double x)自然数e 的 x 次幂
    double log(double x)x 的自然对数
    double log10(double x)x 的常用对数
    double sqrt(double x)平方根
    double pow(double x, double y)x 的 y 次幂
    double modf(double x, double *integer)x 的常用对数
    double log(double x)x 的自然对数
    double ldexp(double x, int exponent)x 乘以 2 的 exponent 次幂
  4. 其他

    函数原型描述
    double floor(double x)小于或等于 x 的最大的整数值。
    double fmod(double x, double y)x 除以 y 的余数。
    double fabs(double x)绝对值
    double ceil(double x)大于或等于 x 的最小的整数值
    double frexp(double x, int *exponent)把浮点数 x 分解成尾数和指数。返回值是尾数,并将指数存入 exponent 中。所得的值是 x = mantissa * 2 ^ exponent

其他

  1. math.h中进行了庞大的编译器判断,以使用在当前平台速度最快的数据类型。

  2. math.h是十分重要的,它补充了C/C++相比于更新的语言在运算符上的不足,并且提供了一套简单易用,且通用,高效的数学运算。

参考资料

glibc标准库头文件

标准库 - math.h - 《阮一峰《C 语言教程》》 - 书栈网 · BookStack

C 标准库 – <math.h> | 菜鸟教程 (runoob.com)

math.h_百度百科 (baidu.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值