zoukankan      html  css  js  c++  java
  • 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
      */
      
    2. 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
      */
      
    3. 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
      */
      
    4. 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
      */
      
    5. 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
      */
      
    6. 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> 库函数&宏

  • 相关阅读:
    OSI安全体系结构
    PHP 二维数组根据相同的值进行合并
    Java实现 LeetCode 17 电话号码的字母组合
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 14 最长公共前缀
  • 原文地址:https://www.cnblogs.com/Constantin/p/14765253.html
Copyright © 2011-2022 走看看