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. Android权限安全(3)权限的分级和自定义权限

    Android的不同权限分级 Normal 一般apk都可以用, Dangerous 一般apk都可以用,但有提示 SignatureOrSystem 特定的private key签名的或系统的apk ...

  2. Windows下tuxedo配置

    setenv.cmd rem (c) 2003 BEA Systems, Inc. All Rights Reserved. rem Copyright (c) 2000 BEA Systems, I ...

  3. poj 2029 Get Many Persimmon Trees (dp)

    题目链接 又是一道完全自己想出来的dp题. 题意:一个w*h的图中,有n个点,给一个s*t的圈,求这个圈能 圈的最多的点 分析:d[i][j]代表i行j列 到第一行第一列的这个方框内有多少个点, 然后 ...

  4. freemarker中判断对象是否为空

    <#if xxx?exists> 或则 <#if xxx??>两个问号??最简单方便

  5. Jquery实现让滚动条始终保持在最下方

    $(document).ready(function(){ $("#submit").click(function(){ $("#info").append(& ...

  6. Android之 学习路线

    第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环.  2.String和StringBuffer的使用.正则表达式.  3.面向对象的抽象,封装,继承,多态,类与对象,对象初 ...

  7. 物联网操作系统HelloX应用编程指南

    HelloX操作系统应用编程指南 HelloX应用开发概述 可以通过三种方式,在HelloX操作系统基础上开发应用: 1.        以内部命令方式实现应用,直接编译链接到HelloX的内核she ...

  8. liux下ftp链接服务器的常用命令

    FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用 FTP,都会遇到大量的FTP内部命令.熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍 ...

  9. 项目管理工具:Maven使用方法总结

    阅读目录 一.概念 二.Maven安装 三.常用命令 四.生命周期 五.第一个Maven项目 六.POM文件 七.Maven库 八.参考资料 回到顶部 一.概念 Maven是一个项目管理和构建自动化工 ...

  10. MySQL基础之第13章 MySQL函数

    13.1.数学函数 随机数可能会用到,其他基本无视. 13.2.字符串函数 重点CONCAT(S1,S2….) 13.3.日期和时间函数 一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+ ...