通用工具:stdlib.h
作者:追风剑情 发布于:2020-4-26 20:34 分类:C
ANSI C标准库在stdlib.h头文件中定义了一些实用函数。
常用的NSDictionary方法 | |
stdlib.h中声明的类型 | |
类型 | 描述 |
size_t |
sizeof运算符返回的整数类型 |
wchar_t |
用于表示宽字符的整数类型 |
div_t |
div()返回的结构类型,该类型中的quot和rem成员都是int类型 |
ldiv_t |
ldiv()返回的结构类型,该类型中的quot和rem成员都是long类型 |
lldiv_t |
lldiv()返回的结构类型,该类型中的quot和rem成员都是long long类型(C99) |
stdlib.h中定义的常量 | |
NULL |
空指针(相当于0) |
EXIT_FAILURE |
可用作exit()的参数,表示执行程序失败 |
EXIT_SUCCESS |
可用作exit()的参数,表示成功执行程序 |
RAND_MAX |
rand()返回的最大值(一个整数) |
MB_CUR_MAX |
当前本地化的扩展字符集中多字节字符的最大字节数 |
stdlib.h中的函数原型 | |
double atof(const char * nptr) |
返回把字符串nptr开始部分的数字(和符号)字符转换为 double类型的值,跳过开始的空白,遇到第1个非数字字符时结束转换;如果未发现数字则返回0 |
int atoi(const char *nptr) |
返回把字符串nptr开始部分的数字(和符号)字符转换为int类型的值,跳过开始的空白,遇到第1个非数字字符时结束转换;如果未发现数字则返回0 |
int atol(const char *nptr) |
返回把字符串nptr开始部分的数字(和符号)字符转换为1ong类型的值,跳过开始的空白,遇到第1个非数字字符时结束转换;如果未发现数字则返回0 |
double strtod(const char* restrict npt, char ** restrict ept) |
返回把字符串npt开始部分的数字(和符号)符转换为 double类型的值,跳过开始的空白,遇到第1个非数字字符时结束转换;如果未发现数字则返回0;如果转换成功,则把数字后第1个字符的地址赋给ept指向的位置;如果转换失败,则把npt赋给ept指向的位置 |
float strtof(const char* restrict npt, char ** restrict ept) |
与 strtod()类似,但是该函数把npt指向的字符串转换为 float类型的值(C99) |
long double strtols(const char * restrict npt, char ** restrict ept) |
与 strtod类似,但是该函数把npt指向的字符串转换成long double类型的值(99) |
long strtol(const char * restrict npt, char ** restrict ept, int base) |
返回把字符串npt开始部分的数字(和符号)字符转换成long类型的值,跳过开始的空白,遇到第1个非数字字符时结束转换;如果未发现数字则返回0;如果转换成功,则把数字后第1个字符的地址赋给ept指向的位置;如果转换失败,则把npt赋给ept指向的位置;假定字符串中的数字以base指定的数为基数 |
long long strtoll(const char * restrict npt, char ** restrict ept, int base) |
与 strtol()类似,但是该函数把npt指向的字符串转换为long long类型的值(C99) |
unsigned long strtoul(const char * restrict npt, char ** restrict ept, int base) |
返回把字符串npt开始部分的数字(和符号)字符转换为 unsigned long类型的值,跳过开始的空白,遇到第1个非数字字符时结束转换;如果未发现数字则返回0;如果转换成功,则把数字后第1个字符的地址赋给ept指向的位置;如果转换失败,则把npt赋给ept指向的位置;假定字符串中的数字以base指定的数为基数 |
unsigned long long strtoull(const char * restrict npt, char ** restrict ept, int base) |
与 strtoul()类似,但是该函数把npt指向的字符串转换为 unsigned long long类型的值(C99) |
int rand(void) |
返回0~ RANDMAX范围内的一个伪随机整数 |
void srand(unsigned int seed) |
把随机数生成器种子设置为seed,如果在调用rand()之前调用 srand(),则种子为1 |
void *aligned_alloc(size_t algn, size_t size) |
为对齐对象algn分配size字节的空间,应支持algn对齐值,size应该是algn的倍数(c11) |
void *calloc(size_t nmem, size_t size) |
为内含nmem个成员的数组分配空间,每个元素占size字节大;空间中的所有位都初始化为0;如果操作成功,该函数返回数组的地址,否则返回NULL |
void free(void *ptr) |
释放ptr指向的空间,ptr应该是之前调用calloc()、 malloc()或realloc()返回的值,或者ptr也可以是空指针,出现这种情况时什么也不做。如果ptr是其他值,其行为是未定义的 |
void *malloc(size_t size) |
分配size字节的未初始化内存块;如果成功分配,该函数返回数组的地址,否则返回NULL |
void *realloc(void *ptr, size_t size) |
把ptr指向的内存块大小改为size字节,size字节内的内存块内容不变。该函数返回块的位置,它可能被移动。如果不能重新分配空间,函数返回NULL,原始块不变;如果ptr为NULL,其行为与调用带size参数的malloc()相同;如果size是0,且ptr不是NULL,其行为与调用带ptr参数的free()相同 |
void abort(void) |
除非捕获信号 SIGABRT,且相应的信号处理器没有返回,否则该函数将导致程序异常结束。是否关闭I/O流和临时文件,因实现而异。该函数执行 raise(SIGABRT) |
int atexit(void(*func)(void)) |
注册func指向的函数,使其在程序正常结束时被调用。实现应支持注册至少32个函数,并根据它们注册顺序的逆序调用。如果注册成功,函数返回0;否则返回非0 |
int at_quick_exit(void(*func)(void)) |
注册func指向的函数,如果调用 quick_exit()则调用被注册的函数。实现应支持注册至少32个函数,并根据它们注册顺序的逆序调用。如果注册成功,函数返回0;否则返回非0(C11) |
void exit(int status) |
该函数将正常结束程序。首先调用由 atexit()注册的函数,然后刷新所有打开的输出流、关闭所有的I/O流、关闭 tmpfile()创建的所有文件,并把控制权返回主机环境中;如果 status是0或 EXIT_SUCCESS,则返回一个实现定义的值,表明未成功结束程序 |
void _Exit(int status) |
与exit()类似,但是该函数不调用 atexit()注册的函数和 signal()注册的信号处理器,其处理打开流的方式依实现而异 |
char *getenv(const char * name) |
返回一个指向宇符串的指针,该字符串表示name指向的环境变量的值。如果无法匹配指定的name,则返回NULL |
_Noreturn void quick_exit(int status) |
该函数将正常结束程序。不调用atexit()注册的函数和 signal()注册的信号处理器。根据 at_quick_exit()注册数的顺序,逆序调用这些函数。如果程序多次调用 quick_exit()或者同时调用 quick_exit()和exit(),其行为是未定义的。通过调_Exit(status)将控制权返回主机环境(C11) |
int system(const char *str) |
把str指向的字符传递给命处理器(如Dos或UNX)执行的主机环境,如果str是NULL指针,且命令处理器可用,则该函数返回非0,否则返回0;如果atr不是NULL,回值依实现而异 |
void *bsearch(const void *key, const void *base, size_t nmem, size_t size, int (*comp)(const void *, const void *)) |
查找base指向的一个数组(有nmem个元素,每个元素的大小为size)中是否有元素匹配key指向的对象,通过comp指向的数比较各项,如果key指向的对象小于数组元素,那么比较函数将返回小于0的值;如果两者相等,则回0;如果key指向的对象大于组元素,则回大于0的值,该函数返回指向匹配元素的指针或NULL(如果无匹配元素)如果有多个元素匹配,未定义返回哪一个元素 |
void qsort(void* base, size_t nmem, size_t size, int(*comp) (const void *, const void *)) |
根据comp指向的函数所提供的顺序排列base指向的数组。该数组有nmem个元素,每个元素的大小是size。如果第1个参数指向的对象小于数组元素,那么比较函数将返回小于0的值;如果两者相等,则回0;如果第1个参数指向的对象大于数组元素,则返回大于0的值 |
int abs(int n) |
返回n的绝对值。如果n是负数但没有与之对应的正数,那么返回值是未定义的(当n是以二进制补码表示的 INT_MIN时,会出现这种情况) |
div_t div(int number, int denom) |
计算 number除以 denom的商和余,把商和余数分别储存在div_t结构的quot成员和rem成员中。对于无法整除的除法,商要趋零截断(即直接截去小数部分) |
long labs(int n) |
返回n的绝对值,如果n是负数但没有与之对应的正数,那么返回的值是来定义的(当n是以二进制补码表示的 LONG_MIN时,会出现这种情况) |
ldiv_t ldiv(long number, long denom) |
计算 number除以 denom的商和余,把商和余数分别储存在ldiv_t结构的quot成员和rem成员中,对于无法整除的除法,商要趋零截断(即直接截去小数部分) |
long long llabs(int n) |
返回n的绝对值,如果n是负数但没有与之对应的正数,那么返回值是未定义的(当n是以二进制码表示的 LONG_LONG_MIN时,会出现这种情况) |
lldiv_t lldiv(long number, long denom) |
计算 number除以 denom的商和余,把商和余数分别储存在lldiv_t结构的quot成员和em成员中,对于无法整除的除法,商要趋零截断(即直接截去小数部分)(C99) |
int mblen(const char *s, size_t n) |
返回组成s指向的多字节字符的字节数(最大为n)。如果s指向空字符,该函数则回0;如果s未指向多字节字符,则返回-1;如果s是NULL,且多字节根据状态进行编码,这函数则返回非0,否则返回0 |
int mbtowc(wchar_t *pw, const char *s, size_t n) |
如果s不是NULL,该函数确定了组成s指向的多字节字符的字节数(最大为n),并确定字符的wchar_t类型编码。如果pw不是NULL,则把类型编码赋给pw指向的位置,返回值与mblen(s, n)相同 |
int wctomb(char *s, wchar_t wc) |
把wc中的字符代码转换成相应的多字节字符表示,并将其储存在s指向的数组中,除非s是NULL。如果s不是NULL,且如果wc无法转换成相应的有效多字节字符,该函数返回-1;如果wc有效,该函数返回组成多字节的字节数;如果s是NULL,且如果多字节字符根据状态进行编码,该函数则返回非0,否则返回0 |
size_t mbstowcs(wchar_t *restrict pwcs, const char *restrict s, size_t n) |
把s指向的多字节字符数组转换成储存在pwcs开始位置的宽字符编码数组中,转换pwcs数组中的n个字符或转换到s数组的空字节停止。如果遇到无效的多字节字符,该函数返回(size_t)(-1);,否则返回已填充的数组元素个数(如果有空字符,不包含空字符) |
size_t wcstombs(char * restrict s, const wchart_t * restrict pwcs, size_t n) |
把储存在pwcs指向数组中的宽字符编码序列转换成一个多字节字符序列,并把它拷贝到s指向的位置上,储存n个字节或遇到空字符时停止转换。如果遇到无效的宽字符编码,该函数返回(size_t)(-1),否则返回已填充数组的字节数(如果有空字符,不包含空字符) |
标签: C语言
日历
最新文章
随机文章
热门文章
分类
存档
- 2024年11月(3)
- 2024年10月(5)
- 2024年9月(3)
- 2024年8月(3)
- 2024年7月(11)
- 2024年6月(3)
- 2024年5月(9)
- 2024年4月(10)
- 2024年3月(11)
- 2024年2月(24)
- 2024年1月(12)
- 2023年12月(3)
- 2023年11月(9)
- 2023年10月(7)
- 2023年9月(2)
- 2023年8月(7)
- 2023年7月(9)
- 2023年6月(6)
- 2023年5月(7)
- 2023年4月(11)
- 2023年3月(6)
- 2023年2月(11)
- 2023年1月(8)
- 2022年12月(2)
- 2022年11月(4)
- 2022年10月(10)
- 2022年9月(2)
- 2022年8月(13)
- 2022年7月(7)
- 2022年6月(11)
- 2022年5月(18)
- 2022年4月(29)
- 2022年3月(5)
- 2022年2月(6)
- 2022年1月(8)
- 2021年12月(5)
- 2021年11月(3)
- 2021年10月(4)
- 2021年9月(9)
- 2021年8月(14)
- 2021年7月(8)
- 2021年6月(5)
- 2021年5月(2)
- 2021年4月(3)
- 2021年3月(7)
- 2021年2月(2)
- 2021年1月(8)
- 2020年12月(7)
- 2020年11月(2)
- 2020年10月(6)
- 2020年9月(9)
- 2020年8月(10)
- 2020年7月(9)
- 2020年6月(18)
- 2020年5月(4)
- 2020年4月(25)
- 2020年3月(38)
- 2020年1月(21)
- 2019年12月(13)
- 2019年11月(29)
- 2019年10月(44)
- 2019年9月(17)
- 2019年8月(18)
- 2019年7月(25)
- 2019年6月(25)
- 2019年5月(17)
- 2019年4月(10)
- 2019年3月(36)
- 2019年2月(35)
- 2019年1月(28)
- 2018年12月(30)
- 2018年11月(22)
- 2018年10月(4)
- 2018年9月(7)
- 2018年8月(13)
- 2018年7月(13)
- 2018年6月(6)
- 2018年5月(5)
- 2018年4月(13)
- 2018年3月(5)
- 2018年2月(3)
- 2018年1月(8)
- 2017年12月(35)
- 2017年11月(17)
- 2017年10月(16)
- 2017年9月(17)
- 2017年8月(20)
- 2017年7月(34)
- 2017年6月(17)
- 2017年5月(15)
- 2017年4月(32)
- 2017年3月(8)
- 2017年2月(2)
- 2017年1月(5)
- 2016年12月(14)
- 2016年11月(26)
- 2016年10月(12)
- 2016年9月(25)
- 2016年8月(32)
- 2016年7月(14)
- 2016年6月(21)
- 2016年5月(17)
- 2016年4月(13)
- 2016年3月(8)
- 2016年2月(8)
- 2016年1月(18)
- 2015年12月(13)
- 2015年11月(15)
- 2015年10月(12)
- 2015年9月(18)
- 2015年8月(21)
- 2015年7月(35)
- 2015年6月(13)
- 2015年5月(9)
- 2015年4月(4)
- 2015年3月(5)
- 2015年2月(4)
- 2015年1月(13)
- 2014年12月(7)
- 2014年11月(5)
- 2014年10月(4)
- 2014年9月(8)
- 2014年8月(16)
- 2014年7月(26)
- 2014年6月(22)
- 2014年5月(28)
- 2014年4月(15)
友情链接
- Unity官网
- Unity圣典
- Unity在线手册
- Unity中文手册(圣典)
- Unity官方中文论坛
- Unity游戏蛮牛用户文档
- Unity下载存档
- Unity引擎源码下载
- Unity服务
- Unity Ads
- wiki.unity3d
- Visual Studio Code官网
- SenseAR开发文档
- MSDN
- C# 参考
- C# 编程指南
- .NET Framework类库
- .NET 文档
- .NET 开发
- WPF官方文档
- uLua
- xLua
- SharpZipLib
- Protobuf-net
- Protobuf.js
- OpenSSL
- OPEN CASCADE
- JSON
- MessagePack
- C在线工具
- 游戏蛮牛
- GreenVPN
- 聚合数据
- 热云
- 融云
- 腾讯云
- 腾讯开放平台
- 腾讯游戏服务
- 腾讯游戏开发者平台
- 腾讯课堂
- 微信开放平台
- 腾讯实时音视频
- 腾讯即时通信IM
- 微信公众平台技术文档
- 白鹭引擎官网
- 白鹭引擎开放平台
- 白鹭引擎开发文档
- FairyGUI编辑器
- PureMVC-TypeScript
- 讯飞开放平台
- 亲加通讯云
- Cygwin
- Mono开发者联盟
- Scut游戏服务器引擎
- KBEngine游戏服务器引擎
- Photon游戏服务器引擎
- 码云
- SharpSvn
- 腾讯bugly
- 4399原创平台
- 开源中国
- Firebase
- Firebase-Admob-Unity
- google-services-unity
- Firebase SDK for Unity
- Google-Firebase-SDK
- AppsFlyer SDK
- android-repository
- CQASO
- Facebook开发者平台
- gradle下载
- GradleBuildTool下载
- Android Developers
- Google中国开发者
- AndroidDevTools
- Android社区
- Android开发工具
- Google Play Games Services
- Google商店
- Google APIs for Android
- 金钱豹VPN
- TouchSense SDK
- MakeHuman
- Online RSA Key Converter
- Windows UWP应用
- Visual Studio For Unity
- Open CASCADE Technology
- 慕课网
- 阿里云服务器ECS
- 在线免费文字转语音系统
- AI Studio
- 网云穿
- 百度网盘开放平台
- 迅捷画图
- 菜鸟工具
- [CSDN] 程序员研修院
- 华为人脸识别
- 百度AR导航导览SDK
- 海康威视官网
- 海康开放平台
- 海康SDK下载
- git download
交流QQ群
-
Flash游戏设计: 86184192
Unity游戏设计: 171855449
游戏设计订阅号