文档介绍:第十六章:标准函数库 c与指针基本介绍?标准库函数是一个工具箱,它极大地扩展了 c程序员的能力。?最常用的库函数诸如标准输入输出函数 ,以及字符串处理函数等等。对于一般的芯片都有自己的库函数,通常是一些驱动档组成的头函数,然后可以把这些头档集中到一起,重新定义一个头档,如 k60 芯片的 中。?所有的头档都是通过#include 包含到工程里面去的,这样就能获取这些函数的原型?见程序; 整型函数?这组函数的返回整型值,分为三类:算数,随机数和字符串转换。头文件 ?1:算数类: int abs ( int value );返回参数的绝对值。? long int abs(long int value );返回参数绝对值,只是作用对象是长整型。? div_t div (int numerator , int denominator );函数把第二个参数除以第一个参数,产生商和余数。用一个 div_t 结构返回。这个结构包含下面两个字段。 int quto ; int rem ; ? ldiv_t ldiv (long int numer , long int denom );作用与上面 div 函数一样,只是作用对象是长整型的。?2随机数类: int rand (void); 返回一个范围在 0到 RAND_MAX 之间的伪随机数。为了得到更小范围的数,应该吧这个函数的返回值根据所需范围的大小进行取模运算。? void srand ( unsigned int seed );这个函数避免了程序每次运行时获得相同的随机数序列。它用参数值对随机数发生器进行初始化。一般以每天的时间作为 seed 值。如 srand ((unsigend int )time(0)) ;time 函数原型在 文件中。?洗牌程序:打乱数组中‘牌’的顺序; ?3字符串转换:字符串转换函数把字符串转换为数值。其中最简单的是函数 atoi 函数和 atol 函数,执行基数为 10的转换。 strtol 和 strtoul 函数允许在转换时指定基数,同时还允许访问字符串的剩余部分。? int atoi (char const * string ); //把合法的字符转换成整数? long int atol(char const * string ); ? long int strtol(char const * string ,char ** unused ,int base ); 它与 atol 功能一样,但它保存了一个指向转换值后面的第一个字符的指针,若参数 2非空,这个指针便保存在所指? unsigned long int strtoul(char const * string , char ** unused ,int base ); 上面的两个函数 strtol 和 strtoul 的第三个参数是转换所执行的基数。如果基数是 0,任何在程序中用于书写整数字面字的形式都被接受。如: 0x2af4 。函数(不常用) 返回值 strtol 如果值太大且为负数,返回 LONG_MIN 。如果值太大且为正数,返回 LONG_MAX strtoul 如果值太大,返回 ULONG_MAX 浮点型函数?头文件 中包含了函数库中剩余的数学函数声明。这些函数的返回值以及绝大多数参数都是 double 类型的。?如果一个函数的参数不在该函数的定义域内,称为定义域错误。如 sqrt ( - );负值的平方根是没有定义的。?如果一个函数的结果值过大或者过小,无法用 double 类型表示,这称为范围错误,例如 exp ( DBL_MAX) ;将产生范围错误。 三角函数?标准函数库提供常用的三角函数。 sin , cos , tan , asin 等等。如 double sin ( double angle );参数是一个弧度表示的角度。 asin,acos,atan 函数分别返回它们的参数的反正弦,反余弦和反正切值。注意参数的范围! atan2 函数返回表达式 y/x 的反正切值。?双曲函数 double sinh ( double angle );返回参数的双曲正弦。 double cosh ( double angle );返回参数的双曲余弦, double tanh ( double angle ); 返回双曲正切值。每个函数的参数都是一个弧度表示的角度。?对数和指数函数 double exp ( double x);返回 e值的 x次幂。 double log ( double x);返回 x