C和指针(学习笔记)_第16章 标准函数库

1.整型函数

      这组函数返回整型值,这些函数分为三类:算术、随机数和字符串转换。

     1)算术

int abs(int value);
long int labs(long int value);
div_t div(int numerator,int denominator);
ldiv_t ldiv(long int number,long int denom);

     2)随机数(伪随机数)

int rand(void);
void srand(unsigned int seed);

    3)字符串转换

int atio(char const *string);
long int atol(char const *string);
long int strtol(char const *string,char **unused,int base);
unsigned long int strtoul(char const *string,char **unused,int base);

2.浮点型函数

     1)三角函数

double sin(double angle);
double cos(double angle);
dobule tan(double angle);
double asin(double value);
double acos(double value);
double atan(double value);
double atan2(double value);

     2)双曲函数

double sinh(double angle);
double cosh(double angle);
double tanh(double angle);

    3)对数和指数函数

double exp(double x);
double log(double x);
double log10(double x);

    4)浮点表示

double frexp(double value,int *exponent);
double ldexp(double fraction,int exponent);
double modf(double value,double *ipart);

    5)幂

double pow(double x,double y);
double sqrt(double x);

   6)底数、顶数、绝对值和余数

double floor(double x);
double ceil(double x);
double fabs(double x);
double fmod(double x,double y);

    7)字符串转换

double atof(char const *string);
double strtod(char const *string,char **unused);

 3.日期和时间函数

//处理时间
clock_t clock(void);
//当天时间
time_t time(time_t *returned_value);
//日期和时间转换
char *ctime(time_t const *time_value);
double difftime(time_t time1,time_t time2);
asctime(locatime(time_value));
struct tm *gmtime(time_t const *time_value);
struct tm *localtime(time_t const *time_value);

4.非本地跳转

int setjmp(jmp_buf state);
void longjmp(jump_buf state,int value);

5.信号

      SIGABRT/SIGFPE/SIGILL/SIGSEGV/SIGINT/SIGTERM.

6.打印可变参数列表

int vprintf(char const *format,va_list,arg);
int vfprintf(FILE *stream,char const *format,va_list arg);
int vsprintf(char *buffer,char const *format,va_list_arg);

7.执行环境

1)终止执行
void abort(void);
void atexit(void(func)(void));
void exit(int status);

2)断言
void assert(int expression);

3)环境
char *getenv(char const *name);

4)执行系统命令
void system(char const *command);

5)排序和查找
void qsort(...);
void *bsearch(...);

8.locale

char *setlocal(int category,char const *local);

9.警告的总结

     1)忘了包含math.h头文件可能导致数学函数产生不正确的结果;

     2)clock函数可能只产生处理时间的近似值;

     3)time函数的返回值并不一定是以秒为单位的;

     4)tm结构中月份的范围并不是从1到12;

     5)tm结构中的年是从1900年开始计数的年数;

     6)longjmp不能返回到一个已经不再处于活动状态的函数;

     7)从异步信号的处理函数中调用exit或abort函数是不安全的;

     8)当每次信号发生时,必须重新设置信号处理函数;

     9)避免exit函数的多重调用。

10.编程提示总结

       1)滥用setjmp和longjmp可能导致晦涩难懂的而代码;

       2)对信号进行处理将导致程序的可移植性变差;

       3)使用断言可以简化程序的调试;

你可能感兴趣的:(学习总结,c语言,指针)