• 常用的 C 语言库函数


    0x01 <assert.h>

    C 标准库的 assert.h头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。

    已定义的宏 assert 指向另一个宏 NDEBUG,宏 NDEBUG 不是 <assert.h> 的一部分。如果已在引用 <assert.h> 的源文件中定义 NDEBUG 为宏名称,则 assert 宏的定义如下:

    #define assert(ignore) ((void)0)
    

    assert 断言就是假设一个情况会发生,然后才会执行他后面的代码。这个宏通常用来判断程序中是否出现了明显非法的数据。如果出现了,则终止程序以免导致严重的后果,同时也能够查找出错误。具体更加详细的用法请参见 assert 断言的用法

    0x02 <math.h>

    math.h 头文件定义了各种数学函数和一个宏。在这个库中所有可用的功能都带有一个 double 类型的参数,且都返回 double 类型的结果。

    常用的函数:

    1. double pow(double x, double y) 返回 x 的 y 次幂。
    #include <stdio.h>
    #include <math.h>
    
    int main ()
    {
       printf("值 8.0 ^ 3 = %lf
    ", pow(8.0, 3));
    
       printf("值 3.05 ^ 1.98 = %lf", pow(3.05, 1.98));
       
       return(0);
    }
    
    /*
    值 8.0 ^ 3 = 512.000000
    值 3.05 ^ 1.98 = 9.097324
    */
    
    1. double sqrt(double x) 返回 x 的平方根。

      #include <stdio.h>
      #include <math.h>
      
      int main ()
      {
      
         printf("%lf 的平方根是 %lf
      ", 4.0, sqrt(4.0) );
         printf("%lf 的平方根是 %lf
      ", 5.0, sqrt(5.0) );
         
         return(0);
      }
      
      /*
      4.000000 的平方根是 2.000000
      5.000000 的平方根是 2.236068
      */
      
    2. double ceil(double x) 返回大于或等于 x 的最小的整数值。

    #include <stdio.h>
    #include <math.h>
    
    int main ()
    {
       float val1, val2, val3, val4;
    
       val1 = 1.6;
       val2 = 1.2;
       val3 = 2.8;
       val4 = 2.3;
    
       printf ("value1 = %.1lf
    ", ceil(val1));
       printf ("value2 = %.1lf
    ", ceil(val2));
       printf ("value3 = %.1lf
    ", ceil(val3));
       printf ("value4 = %.1lf
    ", ceil(val4));
       
       return(0);
    }
    
    /*
    value1 = 2.0
    value2 = 2.0
    value3 = 3.0
    value4 = 3.0
    */
    
    1. double fabs(double x) 返回 x 的绝对值。

      #include <stdio.h>
      #include <math.h>
      
      int main ()
      {
         int a, b;
         a = 1234;
         b = -344;
        
         printf("%d 的绝对值是 %lf
      ", a, fabs(a));
         printf("%d 的绝对值是 %lf
      ", b, fabs(b));
         
         return(0);
      }
      
      /*
      1234 的绝对值是 1234.000000
      -344 的绝对值是 344.000000
      */
      
    2. double floor(double x) 返回小于或等于 x 的最大的整数值。

    #include <stdio.h>
    #include <math.h>
    
    int main ()
    {
       float val1, val2, val3, val4;
    
       val1 = 1.6;
       val2 = 1.2;
       val3 = 2.8;
       val4 = 2.3;
    
       printf("Value1 = %.1lf
    ", floor(val1));
       printf("Value2 = %.1lf
    ", floor(val2));
       printf("Value3 = %.1lf
    ", floor(val3));
       printf("Value4 = %.1lf
    ", floor(val4));
       
       return(0);
    }
    
    /*
    Value1 = 1.0
    Value2 = 1.0
    Value3 = 2.0
    Value4 = 2.0
    */
    
    1. double fmod(double x, double y) 返回 x 除以 y 的余数。

      #include <stdio.h>
      #include <math.h>
      
      int main ()
      {
         float a, b;
         int c;
         a = 9.2;
         b = 3.7;
         c = 2;
         printf("%f / %d 的余数是 %lf
      ", a, c, fmod(a,c));
         printf("%f / %f 的余数是 %lf
      ", a, b, fmod(a,b));
         
         return(0);
      }
      
      /*
      9.200000 / 2 的余数是 1.200000
      9.200000 / 3.700000 的余数是 1.800000
      */
      

    这里选择使用函数而不是运算符 % 的原因是:% 运算法只支持两个 int 类型的整型之间的运算,不支持其他类型之间的取余。

    0x03 <stdio.h> & <stdlib.h> & <string.h> & <time.h>

    这三个头文件中的函数大部分都是很重要的,所以就不单列出来了,有需要的话可以看菜鸟相关页的详解:

    <stdio.h> 库函数&宏

    <stdlib.h> 库函数&宏

    <string.h> 库函数&宏

    <time.h> 库函数&宏

  • 相关阅读:
    《Erlang程序设计》 第六章 编译并运行程序
    《Erlang程序设计》第二章 入门
    《Erlang程序设计》第一章 引言
    《Erlang程序设计》第四章 异常
    animation的控件动画效果
    各种自定义动画效果
    loding等待时的一些效果
    逐渐显示的按钮和图片上下切换
    Android的系统架构
    【转】overridePendingTransition 动画切换效果
  • 原文地址:https://www.cnblogs.com/Constantin/p/14694830.html
Copyright © 2020-2023  润新知