stdlib 头文件即standard library标准库头文件。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()等等。 具体的内容可以打开编译器的include目录里面的stdlib.h头文件查看。
 
输入样式:C语言模式:#include <stdlib.h>
C++样式:#include <cstdlib>
 

c语言的疑惑(一)头文件: stdlib.h

 http://www.cnblogs.com/youngchou/articles/5493171.html

stdlib.hC标准函数库头文件,声明了数值与字符串转换函数, 伪随机数生成函数, 动态内存分配函数, 进程控制函数等公共函数。 C++程序应调用等价的cstdlib头文件.

当你需要使用一下函数的时候,可以将这个头文件包含进来:

函数

stdlib.h中声明的库函数可分为六类:类型转换、伪随机数、动态内存分配与回收管理、进程控制、搜索及排序、简单数学。

类型转换

atof
字符串转换为双精度浮点数。相当于strtod(s, (char**)NULL).

atoi
把字符串转换为整型. 相当于(int)strtol(s, (char**)NULL, 10).

atol
把字符串转换为长整型. Equivalente a strtol(s, (char**)NULL, 10).

atoll
把字符串转换为长长整型. Equivalente a strtol(s, (char**)NULL, 10). 这是C99新增加的库函数。

strtod
把字符串转换为双精度浮点数,检查结果是否溢出,并返回字符串不能转换部分的地址.

strtof
把字符串转换为单精度浮点数,检查结果是否溢出,并返回字符串不能转换部分的地址.

strtold
把字符串转换为长双精度浮点数,检查结果是否溢出,并返回字符串不能转换部分的地址.

strtol
把字符串转换为长整型,检查结果是否溢出,并返回字符串不能转换部分的地址.

strtoll
把字符串转换为long long int,检查结果是否溢出,并返回字符串不能转换部分的地址.

strtoul
把字符串转换为无符号长整形,检查结果是否溢出,并返回字符串不能转换部分的地址.

strtoull
把字符串转换为unsigned long long int,检查结果是否溢出,并返回字符串不能转换部分的地址.

伪随机数序列生成

rand
返回在0到RAND_MAX之间的伪随机数. 不接受参数作为随机数种子,因此产生的伪随机数列相同,有利于程序调试。

srand
初始化rand()接受无符号整型参数作为伪随机数种子.如果种子相同,伪随机数列也相同。

内存的分配与释放

aligned_alloc
边界对齐的动态内存分配.

calloc
数组的动态内存分配,且初始化为全零

malloc
动态内存分配,其内容不初始化

realloc
释放老的动态内存块,按照给出的尺寸分配新的动态内存块,老的内存块的内容尽量复制到新的内存块

free
系统释放动态分配的内存. 如果是空指针,则无动作发生;如果指针所指不是动态分配的内存块或者是已释放的内存块,则行为是未定义的。

进程控制/与运行环境的沟通

abort
导致程序非正常的结束,各种流缓冲区与临时文件直接放弃。实际上抛出raise(SIGABRT),缺省的信号处理行为是使用退出代码3执行终止(terminate)操作。如果SIGABRT被捕捉且信号处理程序不返回,则程序将不终止.

atexit
登记一个函数,当程序使用exit正常退出时被登记的函数自动被调用.

exit
程序正常终止。首先atexit()登记的函数按照登记的逆序被调用;如果多次调用atexit登记了多个函数,按照登记的逆序调用这些函数。如果一个函数被登记了多次,则程序正常退出时该函数也将被调用多次。然后所有缓冲区中的数据被写回(flushed);所有打开着的流被关闭;tmpfile函数创建的文件被删除。最后,控制权返回给调用环境,返回数值表示程序返回时的状态,0表示EXIT_SUCCESS, 1表示EXIT_FAILURE.

at_quick_exit
登记一个函数,当程序使用quick_exit正常退出时被登记的函数自动被调用.

_Exit
程序正常终止, 但atexit()at_quick_exit()signal()登记的函数不被调用; 打开的流、文件是否被关闭,由编译器的实现者决定

getenv
获得某一个环境变量的字符串值,如果该环境变量不存在,返回NULL.

quick_exit
程序正常终止, 但atexit(), 登记的函数不被调用; at_quick_exit()登记的函数按登记顺序的逆序被调用。

system
把参数作为外部环境的命令执行。 如果参数为空,则判断外部环境是否有命令解释器。

搜索与排序

bsearch
折半搜索.

qsort
快速排序.

整数算术

abs, labs, llabs
计算整数的绝对值.

div, ldiv, lldiv
计算整数除法的商与余数.

多字节字符/宽字符转换

mblen
计算多字节字符的长度并确定是否为有效字符 .

mbtowc
多字节字符转换为宽字符.

wctomb
宽字符转换为多字节字符.

多字节字符串/宽字符串转换

mbstowcs
多字节字符串转换为宽字符串.

wcstombs
宽字符串转换为多字节字符串.

stdlib.h 头文件的更多相关文章

  1. 总结 <stdlib.h>头文件 在算法中可能会用到的一些函数

    头文件<stdlib.>具有一定的总结性. 它定义了类型.宏和各种函数,这些函数用于:内存管理.排序和查找.整形运算.字符串到数字的转换.伪随机数序列.与环境的接口.把多字节字符串和字符转 ...

  2. jni.h头文件详解二

    作者:左少华 博客:http://blog.csdn.net/shaohuazuo/article/details/42932813 转载请注明出处:http://blog.csdn.net/shao ...

  3. 【转】 jni.h头文件详解(二)

    原文网址:http://blog.csdn.net/shaohuazuo/article/details/42932813 作者:左少华 博客:http://blog.csdn.net/shaohua ...

  4. 如何使用微软提供的TCHAR.H头文件?

    转载:https://www.cnblogs.com/flyingspark/archive/2012/03/16/2399788.html 如何使用微软提供的TCHAR.H头文件? 如果你现在写的代 ...

  5. 【C】.h头文件的重复包含问题

    .h头文件存在的意义就是封装,可以方便多个.c源文件使用,但要防止.h头文件被同一个.c源文件多次包含. 例如, io.h文件 #ifndef _IO_H_ #define _IO_H_ #defin ...

  6. 【转】【Raspberry Pi】Unix NetWork Programming:配置unp.h头文件环境

    一.初衷 近期正在做网络计算编程的作业.要求平台为unix/linux,想着Raspberry Pi装的Debian系统也是Linux改的,也应该能够勉强用着,所以就用它来做作业了! 二.说明 先把环 ...

  7. Android JNI开发生成.h头文件问题(转)

    在JNI开发中,首先要将建立的anroid类编译成.h文件,编译用到命令javah,由于第一次用,以前对java的编译过程也不怎么了解,所以走了好多弯路,网络没有对这一步的详细介绍,这里讲一下: 通过 ...

  8. 基础知识复习(二)——stdafx.h 头文件及x&(x-1)运算

    今天好久没写过C++程序了,使用VS2013 新建空的控制台程序,结果自动生成了头文件和main 方法. 就了解了stdafx.h头文件的含义及用法. stdafx:standard Applicat ...

  9. hpp头文件与h头文件的区别

    hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译.而实现代码将直接 ...

随机推荐

  1. C++STL 之排列

    固然我们可以自己使用递归编写全排列程序,但是既然STL里面已将有了这个功能为什么不直接用呢,下面就写一下直接使用C++ STL生成全排序的程序 函数名:next_permutation 包含头文件:a ...

  2. NodeJS常用库说明

    underscore:1.合并json async:1.异步编程同步化

  3. 关于BigDecimal的四舍五入和截断 (2007-08-10 15:06:26)

    关于四舍五入:ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1 BigDe ...

  4. Codeforces Round #207 (Div. 2)C

    读错题意了..线段树延迟标记 白刷这么多线段树 #include <iostream> #include<cstdio> #include<cstring> #in ...

  5. sdut 2846 Remove Trees (二分 + 贪心)

    题目 和poj 上的一道题几乎一样. 题意:已知n棵树距第一棵树的距离,求删掉m棵树后的 树之间 的最小距离  的最大值. 思路:二分枚举最小的距离,注意二分的写法. #include <ios ...

  6. bzoj3413

    SAM好题,显然我们不能与每个后缀都去算LCP 考虑对询问串每一位算贡献,先构建出逆序构建自动机,这样我们得到了原串的后缀树(parent树) 根据parent树的定义,一个节点对应字符串出现的位置对 ...

  7. uva1639 Candy

    组合数,对数. 这道题要用到20w的组合数,如果直接相乘的话,会丢失很多精度,所以用去对数的方式实现. 注意指数,因为取完一次后,还要再取一次才能发现取完,所以是(n+1)次方. double 会爆掉 ...

  8. UVa 10294 (Pólya计数) Arif in Dhaka (First Love Part 2)

    Burnside定理:若一个着色方案s经过置换f后不变,称s为f的不动点,将置换f的不动点的数目记作C(f).等价类的数目等于所有C(f)的平均值. 一个项链,一个手镯,区别在于一个能翻转一个不能,用 ...

  9. FFMPEG 库移植到 VC 需要的步骤

    在VC下使用FFMPEG编译好的库,不仅仅是把.h,.lib,.dll拷贝到工程中就行了,还需要做以下几步.(此方法适用于自己使用MinGW编译的库,也同样适用于从网上下载的编译好的库,例如http: ...

  10. Myeclipse中相同变量高亮显示

    不小心搞不显示了,解决: windows/MyEclipse-> preferences-> java-> Editor-> Mark Occurences 勾选即可