C语言标准库stdlib.h

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;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

auspark

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值