头文件<stdlib.h>

头文件<stdlib.h>被发明的目的是为了定义和声明那些没有明显的归属地宏和函数。它声明了4中类型和几个具有一般功能的函数,还定义了几个宏
1、类型:
size_t 这是无符号整数类型,它是sizeof关键字的结果。
wchar_t 这是一个宽字符常量大小的整数类型。
div_t 这是div函数返回的结构。
ldiv_t 这是ldiv函数返回的结构。
2、宏:
NULL 这个宏是一个空指针常量的值。
EXIT_FAILURE 这是 exit 函数失败时要返回的值。
EXIT_SUCCESS 这是 exit 函数成功时要返回的值。
RAND_MAX 这个宏是 rand 函数返回的最大值。
MB_CUR_MAX 这个宏表示在多字节字符集中的最大字符数,不能大于 MB_LEN_MAX。
3、函数:
3.1字符转换函数
double atof(const char *nptr);
说明:把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。
参数:nptr -- 要转换为浮点数的字符串。
返回值:函数返回转换后的双精度浮点数,如果没有执行有效的转换,则返回零(0.0)。

int atoi(const char *nptr);
说明:把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。
参数:nptr -- 要转换为整数的字符串。
返回值:该函数返回转换后的长整数,如果没有执行有效的转换,则返回零。

long int atol(const char *nptr);
说明:把参数 str 所指向的字符串转换为一个长整数(类型为 long int 型)。
参数:nptr -- 要转换为长整数的字符串。
返回值:该函数返回转换后的长整数,如果没有执行有效的转换,则返回零。

double strtod(const char *nptr,char **endptr);
说明:把参数 nptr 所指向的字符串转换为一个浮点数(类型为 double 型)。
参数:nptr -- 要转换为双精度浮点数的字符串。
endptr -- 对类型为 char* 的对象的引用,其值由函数设置为 nptr 中数值后的下一个字符。
返回值:该函数返回转换后的双精度浮点数,如果没有执行有效的转换,则返回零(0.0)。

long int strtol(const char *nptr,char **endptr,int base);
说明:把参数 nptr 所指向的字符串转换为一个长整数(类型为 long int 型)。
参数:nptr -- 要转换为长整数的字符串。
endptr -- 对类型为 char* 的对象的引用,其值由函数设置为 nptr 中数值后的下一个字符。
base -- 基数,必须介于 2 和 36(包含)之间,或者是特殊值 0。
返回值:该函数返回转换后的长整数,如果没有执行有效的转换,则返回一个零值。

unsigned long int strtoul(const char *nptr,char **endptr,int base);
说明:把参数 nptr 所指向的字符串转换为一个无符号长整数(类型为 unsigned long int 型)。
参数:nptr -- 要转换为无符号长整数的字符串。
endptr -- 对类型为 char* 的对象的引用,其值由函数设置为 nptr 中数值后的下一个字符。
base -- 基数,必须介于 2 和 36(包含)之间,或者是特殊值 0。
返回值:
3.2伪随机序列产生函数
int rand(void);
说明:返回一个范围在 0 到 RAND_MAX 之间的伪随机数。
返回值:该函数返回一个范围在 0 到 RAND_MAX 之间的整数值。

void srand(unsigned in seed);
说明:该函数播种由函数 rand 使用的随机数发生器。
参数:seed -- 这是一个整型值,用于伪随机数生成算法播种。
返回值:该函数不返回任何值。
3.3内存管理函数
void *calloc(size_t nmemb,size_t size);
说明:分配所需的内存空间,并返回一个指向它的指针。
参数:nmemb -- 要被分配的元素个数。
size -- 元素的大小。
返回值:该函数返回一个指针,指向已分配的内存。如果请求失败,则返回 NULL。

void free(void *ptr);
说明:释放之前调用 calloc、malloc 或 realloc 所分配的内存空间。
参数:ptr -- 指针指向一个要释放内存的内存块,该内存块之前是通过调用 malloc、calloc 或 realloc 进行分配内存的。如果传递的参数是一个空指针,则不会执行任何动作。
返回值:该函数不返回任何值。

void *malloc(size_t size);
说明:分配所需的内存空间,并返回一个指向它的指针。
参数:size -- 内存块的大小,以字节为单位。
返回值:该函数返回一个指针 ,指向已分配大小的内存。如果请求失败,则返回 NULL。

void *realloc(void *ptr,size_t size);
说明:尝试重新调整之前调用 malloc 或 calloc 所分配的 ptr 所指向的内存块的大小。
参数:ptr -- 指针指向一个要重新分配内存的内存块,该内存块之前是通过调用 malloc、calloc 或 realloc 进行分配内存的。如果为空指针,则会分配一个新的内存块,且函数返回一个指向它的指针。
size -- 内存块的新的大小,以字节为单位。如果大小为 0,且 ptr 指向一个已存在的内存块,则 ptr 所指向的内存块会被释放,并返回一个空指针。
返回值:该函数返回一个指针 ,指向重新分配大小的内存。如果请求失败,则返回 NULL。
3.4环境通信函数
void abort(void);
说明:使一个异常程序终止。
返回值:该函数不返回任何值。

int atexit(void (*func)(void));
说明:当程序正常终止时,调用指定的函数 func。
参数:func -- 在程序终止时被调用的函数。
返回值:如果函数成功注册,则该函数返回零,否则返回一个非零值。

void exit(int status);
说明:使程序正常终止。
参数:status -- 返回给父进程的状态值。
返回值:该函数不返回值。

char *getenv(const char *name);
说明:搜索 name 所指向的环境字符串,并返回相关的值给字符串。
参数:name -- 包含被请求变量名称的 C 字符串。
返回值:该函数返回一个以 null 结尾的字符串,该字符串为被请求环境变量的值。如果该环境变量不存在,则返回 NULL。

int system(const char *string);
说明:由 string 指定的命令传给要被命令处理器执行的主机环境。
参数:string -- 包含被请求变量名称的 C 字符串。
返回值:如果发生错误,则返回值为 -1,否则返回命令的状态。
3.5查找和排序函数
void *bsearch(const void *key,const void *base,size_t nmemb,size_t size,int (*compar)(const void *,const void *));
说明:执行二分查找。
参数:key -- 指向要查找的元素的指针,类型转换为 void*。
base -- 指向进行查找的数组的第一个对象的指针,类型转换为 void*。
nmemb -- base 所指向的数组中元素的个数。
size -- 数组中每个元素的大小,以字节为单位。
compar -- 用来比较两个元素的函数。
返回值:如果查找成功,该函数返回一个指向数组中匹配元素的指针,否则返回空指针。.

void qsort(void *base,size_t nmemb,size_t size,int (*compar)(const void *,const void *));
说明:数组排序。
参数:base -- 指向要排序的数组的第一个元素的指针。
nmemb -- 由 base 指向的数组中元素的个数。
size -- 数组中每个元素的大小,以字节为单位。
compar -- 用来比较两个元素的函数。
返回值:该函数不返回任何值。
3.6整数算数函数
int abs(int j);
说明:返回 j 的绝对值。
参数:j -- 完整的值。
返回值:该函数返回 j 的绝对值。

div_t div(int mmer,int denom);
说明:分子除以分母。
参数:mmer -- 分子。
denom -- 分母。
返回值:该函数返回定义在 <cstdlib> 中的结构中的值,该结构有两个成员,如 div_t:int quot; int rem;。

long int labs(long int j);
说明:返回 j 的绝对值
参数:j -- 完整的值。
返回值:该函数返回 j 的绝对值。

ldiv_t ldiv(long int numer,long int denom);
说明:分子除以分母。
参数:numer -- 分子。
denom -- 分母。
返回值:该函数返回定义在 <cstdlib> 中的结构中的值,该结构有两个成员,如 ldiv_t:long quot; long rem;。
3.7多字节字符函数
int mblen(const char *s,size_t n);
说明:返回参数 s 所指向的多字节字符的长度。
参数:s -- 指向多字节字符的第一个字节的指针。
n -- 要检查的字符长度的最大字节数。
返回值:如果识别了一个非空宽字符,mblen() 函数返回 s 开始的多字节序列解析的字节数。如果识别了一个空宽字符,则返回 0。如果识别了一个无效的多字节序列,或者不能解析一个完整的多字节字符,则返回 -1。

int mbtowc(wchar_t *pwc,const char *s,size_t n);
说明:检查参数 s 所指向的多字节字符。
参数:pwc -- 指向类型为 wchar_t 对象的指针。
s -- 指向多字节字符的第一个字节的指针。
n -- 要被检查的最大字节数。
返回值:如果 s 不为 NULL,mbtowc() 函数返回 str 开始消耗的字节数,如果指向一个空字节,则返回 0,如果操作失败,则返回 -1。
如果 s 为 NULL,如果编码具有移位状态,则 mbtowc() 函数返回非零,如果编码是无状态的,则返回零。

int wctomb(char *s,wchar_t wchar);
说明:检查对应于参数 wchar 所给出的多字节字符的编码。
参数:s -- 一个指针,指向一个足以存储多字节字符的数组。
wchar -- 类型为 wchar_t 的宽字符。
返回值:如果 s 不为 NULL,wctomb() 函数返回写入字节数组中的字节数。如果 wchar 不能被表示为一个多字节序列,则会返回 -1。
如果 s 为 NULL,如果编码具有移位状态,则 wctomb() 函数返回非零,如果编码是无状态的,则返回零。
3.8多字节串函数
size_t mbstowcs(wchar_t *pwcs,const char *s,size_t n);
说明:把参数 s 所指向的多字节字符的字符串转换为参数 pwcs 所指向的数组。
参数:pwcs -- 指向一个 wchar_t 元素的数组,数组长度足以存储一个最大字符长度的宽字符串。
s -- 要被转换的多字节字符字符串。
n -- 要被转换的最大字符数。
返回值:该函数返回转换的字符数,不包括结尾的空字符。如果遇到一个无效的多字节字符,则返回 -1 值。

size_t wcstombs(char *s,const wchar_t *pwcs,size_t n);
说明:把数组 pwcs 中存储的编码转换为多字节字符,并把它们存储在字符串 s 中。
参数:s -- 指向一个 char 元素的数组,至少有 n 字节长。
pwcs -- 要被转换的宽字符字符串。
n -- 要被写入到 s 中的最大字节数。
返回值:该函数返回转换和写入到 s 中的字节数,不包括结尾的空字符。如果遇到一个无效的多字节字符,则返回 -1 值。

时间: 2024-10-12 12:59:41

头文件<stdlib.h>的相关文章

头文件&lt;stddef.h&gt;

头文件<stddef.h>定义了各种变量类型和宏.这些定义中的大部分也出现在其它头文件中. 1.类型:ptrdiff_t 是指两个指针相减的结果的有符号整数类型size_t 是sizeof操作符的结果的无符号整数类型wchar_t 是一个整值类型,它范围内的值可以表示最大扩展字符集中所有成员的不用编码值,而该字符集是由支持它的区域设置指定的.空字符的编码值应该为02.宏:NULL 展开为实现定义的空指针常量 offsetof 展开为一个size_t类型的整值常量表达式,它的值是从结构的起始位置

头文件&lt;locale.h&gt;

头文件<locale.h>定义了特定地域的设置,如日期格式和货币符号. <locale.h>中声明了两个函数和一个类型,并且定义了一些宏. Linux version 2.6.32-573.el6.x86_64中的<locale.h>源码: /* Copyright (C) 1991,1992,1995-2002,2007,2009 Free Software Foundation, Inc. This file is part of the GNU C Library

头文件&lt;stdio.h&gt;

头文件<stdio.h>声明了三种类型,一些宏和很多执行输入输出的函数.1.类型:FILE 它是一个对象类型,可以记录控制流需要的所有信息,包括它的文件定位符.指向相关的缓冲的指针.记录是否发生了读/写错误的错误指示符和记录文件是否结束的文件结束符.fpos_t 它是一个对象类型,可以唯一指定文件中的每一个位置所需的所有信息.size_t 这是无符号整数类型,它是sizeof关键字的结果.2.宏:NULL 这个宏是一个空指针常量的值._IOFBF._IOLBF.IONBF 这些宏扩展了带有特定

头文件&lt;setjmp.h&gt;

头文件<setjmp.h>定义了宏setjmp,并且为了绕过正常的函数调用和返回规则声明了一个函数和一个类型. 1.类型jmp_buf 它是一个数组类型,适合存储恢复一个调用环境所需的信息. 2.宏setjmp int setjmp(jmp_buf env); 说明:宏setjmp将它的调用环境保存在它的jmp_buf类型的参数中,以供后面longjmp使用. 返回值:如果返回一个来自直接的调用,则宏setjmp返回0:如果返回一个来自longjmp的调用,则宏setjmp返回一个非0值. 3

头文件&lt;ctype.h&gt;

头文件<ctype.h>声明了可以用于识别和转换字符的函数. 一.字符判断函数: 1.函数isalnum int isalnum(int c); 功能:判断变量c是否为字母或数字 返回值:当c为数字0-9或字母a-z及A-Z时,返回非零值,否则返回零. 2.函数isalpha int isalpha(int c); 功能:判断变量c是否为英文字母 返回值:字母返回非0,不是字母返回0. 3.函数iscntrl int iscntrl(int c); 功能:判断字符c是否为控制字符 返回值:当c

C++中#include包含头文件带 .h 和不带 .h 的区别

C++中#include包含头文件带 .h 和不带 .h 的区别? 如 #include <iostream> 和 #include <iostream.h> 包含的东西有哪些不同? 之前在写C++程序的时候只知道使用 #include <iostream> 的时候,使用函数前要用 using namespace std; 导入命名空间,而 #include <iostream.h> 则不用,这个得看C+ +标准化过程为C++开发者做了哪些有意义的工作. (

c 头文件&lt;ctype.h&gt;(一)

头文件<ctype.h>中声明了一些测试字符的函数. 每个函数的参数均为int类型,参数的值必须是EOF或可用unsigned char类型表示的字符,函数返回值为int类型. 如果参数c满足指定的条件,则函数返回非0值(表示真),否则返回0(表示假). 这些函数包括: 1.isalnum(c) 函数isalpha(c)或isdigit(c)为真 2.isalpha(c) 函数isupper(c)或者islower(c)为真 3.iscntrl(c) c为控制符 4.isdigit(c) c为

头文件&lt;math.h&gt;

头文件<math.h>声明了一些数学函数并定义了一个宏. 1.函数acos double acos(double x); 说明:acos计算x的三角反余弦函数主值,如果x不在[-1,+1]内,则发生定义域错误 返回值:返回[0,180]范围内的x的反余弦值. 2.函数asin double asin(double x); 说明:asin计算x的三角反正弦函数主值,如果x不在[-1,+1]内,则发生定义域错误 返回值:返回[-90,+90]范围内的x的反正弦值. 3.函数atan double

头文件&lt;string.h&gt;

头文件<string.h>声明了一种类型和几个函数,并且定义了一个宏.1.类型:size_t 这是无符号整数类型,它是 sizeof 关键字的结果.2.宏:NULL 这个宏是一个空指针常量的值.3.函数:3.1复制函数void *memcpy(void *dest,const void *src,size_t n);说明:从 src 复制 n 个字符到 dest.参数:dest -- 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针. src -- 指向要复制的数据源,类型强制