<stdlib.h>头文件是我们在编程中经常使用到的标准库。今天,我们就来介绍一下这一个头文件。注意,本文有些内容表述并不完整,仍需修订。
四种变量类型
1.size_t是无符号整数类型,它是sizeof关键字的结果。 2.wchar_t是一个宽字符常量大小的整数类型。 3.div_t是div函数返回的结构。 4.ldiv_t是ldiv函数返回的结构。
库文件中的函数介绍
常用函数
1.rand 函数原型:
int rand(void);
函数功能:产生随机整数 函数返回:一个范围在0到RAND_MAX之间的伪随机数,RAND_MAX的值最小为32767,最大为2147483647。
2.abort 函数原型:
void abort(void);
函数功能:使异常程序终止。
3.exit 函数原型:
void exit(int status);
函数功能:停止函数调用并返回状态值status。
4.system 函数原型:
int system(const char *string);
函数功能:调用系统执行函数参数内的命令。
5.atexit 函数原型:
int atexit(void (*func)(void));
函数功能:当程序正常终止时,调用指定的函数func。
6.getenv 函数原型:
char *getenv(const char* name);
函数功能:搜索指针name所指向的环境字符串。 函数返回:返回环境变量的定义。
内存调用
1.calloc 函数原型:
void* calloc(unsigned n,unsigned size);
函数功能:分配n个数据项的内存连续空间,每个数据项的大小为size。 函数返回:返回一个指向分配的该内存空间的指针,若分配失败则返回0。
2.malloc 函数原型:
void* malloc(unsigned size);
函数功能:分配数据项大小为size的内存空间。 函数返回:返回一个指向分配的该内存空间的指针,若分配失败则返回0。
3.realloc 函数原型:
void* realloc(void* p,unsigned size);
函数功能:更改之前调用 malloc 或 calloc 所分配的内存空间大小为size。 函数返回:返回一个指向分配的该内存空间的指针,若分配失败则返回0。
4.free 函数原型:
void free(void* p);
函数功能:释放之前调用上述函数所分配的内存空间。
字符串的转换
1.atof 函数原型:
double atof(const char* str);
函数功能:把函数参数str所指向的字符串转换为一个双精度类型的浮点数。 函数返回:转换后的数值。
2.atoi 函数原型:
int atoi(const char* str);
函数功能:把函数参数str所指向的字符串转换为一个整数值。 函数返回:转换后的数值。
3.atol 函数原型:
long int atol(const char* str);
函数功能:把函数参数str所指向的字符串转换为一个长整数。 函数返回:转换后的数值。
4.strtod 函数原型:
double strtod(const char* str, char **endptr);
函数功能:把函数参数str所指向的字符串转换为一个双精度类型的浮点数。与atof不同,如果字符串还包含其它字符,strtod将把其余的字符串传递给字符串指针。 函数返回:转换后的数值。
5.strtol 函数原型:
long int strtol(const char* str, char **endptr, int base);
函数功能:把函数参数str所指向的字符串转换为一个长整数。base的范围为2-36,决定了字符串转换为整数的权值。 函数返回:转换后的数值。
6.strtoul 函数原型:
unsigned long int strtoul(const char* str, char **endptr, int base);
函数功能:把函数参数str所指向的字符串转换为一个无符号长整数。 函数返回:转换后的数值。
7.ecvt 函数原型:
char *ecvt(double value,int ndigit,int *dec,int *sign);
函数功能:将浮点数value转换为长度为ndigit的字符串。如果超过value的数字长度不补零。 函数返回:转换后的字符串的指针。
8.fcvt 函数原型:
char *fcvt(double value,int ndigit,int *dec,int *sign);
函数功能:将浮点数value转换为长度为ndigit的字符串。如果超过value的数字长度将补零。 函数返回:转换后的字符串的指针。
数学有关函数
1.ans 函数原型:
int abs(int x);
函数功能:求整数的绝对值。 函数返回:x的绝对值。
2.div 函数原型:
div_t div(int numer, int denom);
函数功能:整数分子除以分母。 函数返回:分子除以分母的值。
3.labs 函数原型:
long int labs(long int x);
函数功能:求长整形数的绝对值。 函数返回:x的绝对值。
4.ldit 函数原型:
ldiv_t ldiv(long int numer, long int denom);
函数功能:长整型数分子除以分母。 函数返回:分子除以分母的值。
其他
1.srand 函数原型:
void srand(unsigned int seed);
函数功能:函数srand和rand配合使用产生伪随机数序列。
2.mblen 函数原型:
int mblen(const char *str, size_t n);
函数功能:求函数参数str的多字节字符长度。 函数返回:返回参数str所指向的多字节字符的长度。
3.mbtowc 函数原型:
int mbtowc(wchar_t *pwc, const char *str, size_t n);
函数功能:检查参数str指向的多字节字符。如果指针str不为空,那么就确定str的字节数,然后确定和这个多字节字符对应的wchar_t类型的值的编码。若多字节字符有效且指针pwc不为空,mbtowc函数就把编码值存储在指针pwc指向的对象中,n表示可以检测指针str指向的数组中的最大的数,该数不能超过MB_CUR_MAX。 函数返回:如果str是空指针,多字节字符编码是状态相关的函数返回非零值,如果多字节字符编码状态是不相关的则返回零。如果指针str不为空,s指向空字符,则返回零,否则,返回多字节字符中包含的字节数。若指针str指向的位置的元素不能组成一个有效的多字节字符或者出错,返回-1。
4.mbstowcs 函数原型:
size_t mbstowcs(schar_t *pwcs, const char *str, size_t n);
函数功能:把参数str所指向的多字节字符的字符串转换为参数pwcs所指向的数组。 函数返回:转换后的值。
5.wcstombs 函数原型:
size_t wcstombs(char *str, const wchar_t *pwcs, size_t n);
函数功能:把数组pwcs中存储的编码转换为多字节字符,并把它们存储在字符串 str 中。function把宽字符src转换成多字符dest,最多转换n字节。 函数返回:返回转换的字节数(不包括非0字符),若转换失败则返回(size_t)(-1)。
6.wctomb 函数原型:
int wctomb(char *str, wchar_t wchar);
函数功能:把宽字符wchar转换为它的多字节表示形式,并把它存储在指针str指向的字符数组的开头。 函数返回:如果指针str不为空,返回写入字节数组中的字节数。如果参数wchar不能被表示为一个多字节序列,则返回 -1。
7putenv 函数原型:
int putenv(const char *envvar);
函数功能:把参数envvar加到当前环境中。 函数返回:执行成功则返回0,有错误发生则返回-1。
以上内容可使我们对<stdlib.h>头文件有一个简单的认识。
|