xcode中点开stdlib.h文件,这里边有很多常用而且又非常有用的东西,今儿就来具体的研究研究:
stdlib.h == standard library标准库头文件, 该文件包含了C语言标准库函数的定义
stdlib.h里面定义了五种类型、一些宏和通用工具函数
类型:size_t、wchar_t、div_t、ldiv_t和lldiv_t;
宏 : EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等
函数:malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等
exit函数成功退出和失败的返回值
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
rand 函数返回的最大的数
#define RAND_MAX 0x7FFF
MB_CUR_MAX 一个多字节字符的最大字节数
double atof (const char *); 将字符串转换为 double
int atoi (const char *); 将字符串转换为 int
long atol (const char *); 将字符串转换为 long int
double strtod(const char *str, char **endptr) 将以数字开头的字符串转换为 double,
str 是一个以数字开头的字符串,
返回把 str 转换后的 double , endptr 指向第一个不是数字的字符
long int strtol(const char *str, char **endptr, int base) 将以数字开头的字符串转换为 long int
str 是一个以数字开头的字符串,
返回把 str 以 base 为基数(进制)转换后的 long int ,
endptr 指向第一个不是数字的字符
unsigned long int strtoul(const char *str, char **endptr, int base) 将以数字开头的字符串转换为 long int
void *calloc(size_t nitems, size_t size) 分配请求的内存大小(nitems * size)并返回指向它的指针
void *malloc(size_t size) 分配请求的内存(size)并返回指向它的指针
void *realloc(void *ptr, size_t size) 调整之前分配的内存块大小
ptr 执行要调整的内存块
size 要调整到的字节数
void free(void *ptr) 回收先前分配的内存
char *getenv(const char *name) 搜索环境变量并返回字符串
int system(const char *string) 把命令(string)传递给主机由主机执行
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) 快速排序
base是数组的基地址
nitems是数组的元素个数
size是数组元素大小
compar是比较函数,靠返回值正负来比较,为0的情况未定义
void *bsearch(const void *key, const void *base, size_t num, size_t size, int (*cmp)(const void *, const void *)); 二分查找
key是要查找的元素
base是数组的基地址
num是数组的元素个数
size数组元素大小
cmp是比较函数,靠返回值正负来比较,数组必须是排好序的
返回找到的元素的指针
int abs(int x)
long int labs(long int x)
返回x的绝对值
div_t div(int numer, int denom)
ldiv_t ldiv(long int numer, long int denom)
做除法,分别得到除数和被除数
int rand(void)
返回一个随机数,范围(0~RAND_MAX)
void srand(unsigned int seed)
对随机函数设置种子
int mblen(const char *str, size_t n)
n 是多字节字符的长度的最大值
size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)
将由参数str指向的多字节字符串转换为由pwcs指向的数组
n 是多字节字符的长度的最大值
int atexit(void (*func)(void)) 在程序正常退出时执行
func 要执行的函数
void abort(void) 程序异常退出
void exit(int status) 程序正常退出 ,返回给操作系统 status
数据类型
size_t是sizeof关键词的值,无符号整形
wchar_t 宽字符类型
div_t与ldiv_t结构体 作为 div 的返回值
typedef struct {
int quot; // 商
int rem; // 余数
} div_t;
//-------------------------------
typedef struct {
long int quot; // 商
long int rem; // 余数
} ldiv_t;