C和指针-10
标准函数库
<stdlib.h>
int abs(int value);
long int labs(long int value);
div_t div(int numerator, int denominator);
ldiv_t ldiv(long int numer, long int denom);
abs
和labs
返回参数的绝对值。
div
和ldiv
返回商和余数,第二个参数是分母,第一个参数是分子。
int quot;//商
int rem;//余数
随机数:
int rand(void);
void srand(unsigned int seed);
字符串转换:
int atoi(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);
如果上述函数第一个参数含有前导空白字符,它们将被跳过,如果存在任何非法缀尾字符,也会被忽略。
<math.h>
常见三角函数
double sin(double angle);
double cos(double angle);
double tan(double angle);
double asin(double value);
double acos(double value);
double atan(double value);
double atan2(double x,duoble y);
对数和指数
double exp(double x);
double log(double x);
double log10(double x);
幂
double pow(double x, double y);
double sqrt(double x);
底数、顶数、绝对值和余数
double floor(double x);
double ceil(double x);
double fabs(double x);
double fmod(double x, double y);
<time.h>
clock_t clock(void);
clock 函数返回从程序开始执行起处理器所消耗的时间,如果时间太大返回-1
,除以常量CLOCKS_PER_SEC
以转换成秒。
获取时间
time_t time(time_t *returned_value);
转换
char *ctime(time_t const *time_value);
double difftime(time_t time1, time_t time2);
struct tm *gmtime(time_t const *time_value);
struct tm *localtime(time_t const *time_value);
fifftime 函数计算时间差值,并转换成秒。
gmtime 把时间转换成UTC.
信号 <signal.h>
raise 函数用于显式地引发一个信号
int raise(int sig);
当一个信号发生时,程序可以使用三种对它的处理方式,默认是由编译器定义的,通常是终止程序。信号可以被忽略,或者程序设置一个信号处理函数,信号发生时调用这个函数。
void (*signal (int sig, void (*handler)(int)))(int);
执行环境
终止执行
void abort(void); // 不正常地终止一个正在执行的程序
void atexit(void (func)(void)); //可以把一些函数注册为退出函数,程序正常终止时被调用
void exit(int status);正常终止
断言 <assert.h>
void assert(int expression);
你可以在编译时通过定义NDEBUG
消除所有的断言。可以使用-DNDEBUG
命令行命令或者在包含<assert.h>
头文件前增加
#define NDEBUG