C 语言 stdlib.h 里面到底定义了那些函数?
坑边闲话:
stdlib.h是很多 C 语言的初学者第二个接触到的头文件。该头文件非常重要,学习该文件,可以省下很多功夫。大多数谭浩强老师的读者,在学完了malloc函数之后,就对这个文件知之甚少了。今天我来把其中的所有函数,给大家简单介绍一下。
我曾经自己动手写过一个从一串字符里提取浮点数的算法,GitHub 链接。
后来我才知道,stdlib.h 里面已经定义了一个函数,可以通过这个库函数让我的代码更加精简(当然,它的功能很基础,丰富性不如我的代码)。
工欲善其事,必先利其器。了解库函数是入门第一步;了解所有库,是高手第一步。
1. 关键库函数介绍·
1.1 函数名称 calloc·
函数原型:void calloc(unsigned n, unsigned size);
函数功能:分配 n 个数据项的内存连续空间,每个数据项的大小为 size.
函数返回:分配内存单元的起始地址,如果不成功,返回 0.
1.2 函数名称 free·
函数原型:void free(void* p);
函数功能:释放 p 所指的内存区
函数返回:无返回值
参数说明:p 是被释放的指针。
1.3 函数名称:malloc·
函数原型:void * malloc(unsigned size);
函数功能:分配 size 字节的存储区
函数返回:所分配的内存区地址,如果内存不够,返回 0
1.4 函数名称:realloc·
函数原型:void * realloc(void * p, unsigned size);
函数功能:将 p 所指出的已分配内存区的大小改为 size, size 可以比原来分配的空间大或小
函数返回:返回指向该内存区的指针。NULL 表示分配失败。
1.5 函数名称:rand·
函数原型:int rand(void);
函数功能:产生 0 到 32767 间的随机整数(0 到 0x7fff 之间)
函数返回:随机整数。
1.6 函数名称:abort·
函数原型:void abort(void)
函数功能:异常终止一个进程。
1.7 函数名称:exit·
函数原型:void exit(int state);
函数功能:程序中止执行,返回调用过程。
函数返回:
参数说明:
- state:
0正常中止- 非
0非正常中止
1.8 函数名称:getenv·
函数原型:char* getenv(const char *name)
函数功能:返回一个指向环境变量的指针
函数返回:环境变量的定义
参数说明:name 是环境字符串
1.9 函数名称:putenv·
函数原型:int putenv(const char *name)
函数功能:将字符串 name 增加到 DOS 环境变量中。
函数返回:
0操作成功-1操作失败
参数说明:name-环境字符串
1.10 函数名称:labs·
函数原型:long labs(long num)
函数功能:求长整型参数的绝对值
函数返回:绝对值
1.11 函数名称:atof·
函数原型:double atof(char *str)
函数功能:将字符串转换成一个双精度数值
函数返回:转换后的数值
参数说明:str 待转换浮点型数的字符串
1.12 函数名称:atoi·
函数原型:int atoi(char *str)
函数功能:将字符串转换成一个整数值
函数返回:转换后的数值
参数说明:str- 待转换为整型数的字符串
1.13 函数名称: atol·
函数原型:long atol(char *str)
函数功能:将字符串转换成一个长整数
函数返回:转换后的数值
参数说明:str- 待转换为长整型的字符串
1.14 函数名称: ecvt·
函数原型:char *ecvt(double value, int ndigit, int *dec, int *sign)
函数功能:将浮点数转换为字符串
函数返回:转换后的字符串指针
参数说明:
value:待转换底浮点数ndigit:转换后的字符串长度
1.15 函数名称:fcvt·
函数原型:char *fcvt(double value, int ndigit, int *dec, int *sign)
函数功能:将浮点数变成一个字符串
函数返回:转换后字符串指针
参数说明:
value,待转换底浮点数ndigit,转换后底字符串长度
2. 能力提升·
如此一来,大家可以通过这个代码片段了解一下 stdlib.h 里面的函数怎么用。其实非常简单。我写这篇文章的主要目的就是告诉大家,在学习一门语言的过程中,最最重要的就是了解前人已经把哪些工作做完(并且公认做到了最高效率),然后掌握这些方法。C/C++ 如此,Java、Python 更是如此。
1 | /* |






