本文将介绍 C语言标准库<stdlib.h> 中的 宏、函数、数据类型
在最后给出一个实例程序,尽可能运用到所有函数
宏
EXIT_SUCCESS 和 EXIT_FAILURE
exit函数成功退出和失败的返回值
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
RAND_MAX rand 函数返回的最大的数
#define RAND_MAX 0x7FFF
MB_CUR_MAX 一个多字节字符的最大字节数
源码处理的比较复杂
函数
将字符串转换为 double
double atof (const char *);
将字符串转换为 int
int atoi (const char *);
将字符串转换为 long int
long atol (const char *);
将以数字开头的字符串转换为 double
str 是一个以数字开头的字符串,
返回把 str 转换后的 double , endptr 指向第一个不是数字的字符
double strtod(const char *str, char **endptr)
将以数字开头的字符串转换为 long int
str 是一个以数字开头的字符串,
返回把 str 以 base 为基数(进制)转换后的 long int ,
endptr 指向第一个不是数字的字符
long int strtol(const char *str, char **endptr, int base)
str 是一个以数字开头的字符串,
返回把 str 以 base 为基数 转换后的 unsigned long int ,
endptr 指向第一个不是数字的字符
unsigned long int strtoul(const char *str, char **endptr, int base)
分配请求的内存大小(nitems * size)并返回指向它的指针
void *calloc(size_t nitems, size_t size)
分配请求的内存(size)并返回指向它的指针
void *malloc(size_t size)
调整之前分配的内存块大小
- ptr 执行要调整的内存块
- size 要调整到的字节数
void *realloc(void *ptr, size_t size)
回收先前分配的内存
void free(void *ptr)
搜索环境变量并返回字符串
char *getenv(const char *name)
把命令(string)传递给主机由主机执行
int system(const char *string)
快速排序
- base是数组的基地址
- nitems是数组的元素个数
- size是数组元素大小
- compar是比较函数,靠返回值正负来比较,为0的情况未定义
void qsort(void *base, size_t nitems, size_t size,
int (*compar)(const void *, const void*))
二分查找
- key是要查找的元素
- base是数组的基地址
- num是数组的元素个数
- size数组元素大小
- cmp是比较函数,靠返回值正负来比较,数组必须是排好序的
- 返回找到的元素的指针
void *bsearch(const void *key, const void *base, size_t num, size_t size,
int (*cmp)(const void *, const void *));
返回x的绝对值
int