C标准库概述
C89标准库概述
<assert.h>:诊断
<assert.h>头仅包含assert宏,它允许我们在程序中插入自我检查,一旦任何检查失败,程序会被终止。```
<ctype.h>:字符处理
<ctype.h>头提供用于字符分类及大小写转换的函数。
<errno.h>:错误
<errno.h>头提供了errno(“error number”)。 errno是一个左值(lvalue),可以在调用特定库函数后进行检测,来判断调用过程中是否有错误发生。
<float.h>:浮点类型的特性
<float.h>头提供了用于描述浮点类型特性的宏,包括值的范围及精度
<limits.h>:整数类型的大小
<limits.h>头提供了用于描述整数类型(包括字符类型)特性的宏,包括他们的最大值和最小值。
<locale.h>:本地化
<locale.h>头提供了一些函数来帮助程序适应针对某个国家或地区的特定行为方式。这些与本地化相关的行为包括显示数的方式(如用作小数点的字符)、货币的格式(如货币符号)、字符集以及日期和时间的表示形式。
<math.h>:数学计算
<math.h>头提供了常见的数学函数,包括三角函数、双曲函数、指数函数、对数函数、幂函数、邻近取整函数、绝对值运算函数以及取余函数。
<setjmp.h>:非本地跳转
<setjmp.h>头提供了setjmp函数和longjmp函数。setjmp函数会“标记”程序中的一个位置,随后可以用longjmp返回被标记的位置。这些函数可以用来从一个函数跳转到另一个(仍然活动中的)函数中,而绕过正常的函数返回机制。serjmp函数和longjmp函数主要用来处理函数执行过程中出现的严重问题
<signal.h>:信号处理
<signal.h>头提供了用于 处理异常情况(信号)的函数,包括中断和运行时错误。signal函数可以设置一个函数,使系统会在给定信号发生后自动调用该函数;raise函数用来产生信号。
<stdarg.h>:可变参数
<stdarg.h>头提供了一些工具用于编写参数个数可变的函数,就像printf和scanf函数一样。
<stddef.h>:常用定义
<stddef.h>头提供了经常使用的类型和宏的定义。
<stdio.h>:输入/输出
<stddef.h>头提供了大量的输入/输出函数,包括对顺序访问和随机访问文件的操作。
<stdlib.h>:常用实用程序
<stdlib.h>头包含了大量无法划归其他头的函数。包含在<stdlib.h>中的函数可以将字符串转换成数,产生伪随机数,执行内存管理任务,与操作系统通信,执行搜索与排序,以及在多字节字符与宽字符之间进行转换。
<string.h>:字符串处理
<string.h>头提供了用于进行字符串操作(包括复制、拼接、比较及搜索)的函数以及对任意内存块进行操作的函数。
<time.h>:日期和时间
<time.h>头提供相应的函数来获取时间(和日期),操纵时间,以及格式化时间的显示。
C99标准库更新
<complex.h>:复数算术
<complex.h>头定义了complex和I宏,这两个宏对于复数的运算来说非常有用。该头还提供了对复数进行数学运算的函数。
<fenv.h>:浮点环境
<fenv.h>头提供了对浮点状态标志和控制模式的访问。例如,程序可以测试标志来判断浮点数运算过程中是否发生了溢出,或者设置控制模式来指定如何进行取整。
<inttypes.h>:整数类型格式转换
<inttypes.h>头定义了可用于<stdint.h>中声明的整数类型的输入/输出的格式化字符串的宏,还提供了处理最大宽度整数的函数。
<iso646.h>:整数类型格式转换
<iso646.h>头定义了可代表特定运算符(包含字符&、|、~、!和^的运算符)的宏。当编程环境的本地字符集没有这些字符时,这些宏非常有用。
<stdbool.h>:布尔类型和值
<stdbool.h>头定义了bool、true和false宏,同时还定义了一个可以用于测试这些宏是否已被定义的宏。
<stdint.h>:整数类型
<stdint.h>头声明了指定宽度的整数类型并定义了相关的宏(例如指定每种类型的最大和最小值的宏)。同时定义了用于构建具体类型的整数常量的带参数的宏。
<tgmath.h>: 泛型数学
在C99中,<math.h>和<complex.h>头中的许多数学函数都有多个版本。<tgmath.h>头中的泛型宏可以检测传递给他们的参数的类型,并替代为相应<math.h>或<complex.h>中函数的调用。
<wchar.h>:扩展的多字节和宽字符实用工具
<wchar.h>头提供了宽字符输入/输出和宽字符串操作的函数。
<wctype.h>:宽字符分类和映射实用工具
<wctype.h>头是<ctype.h>的宽字符版本,提供了对宽字符进行分类和修改的函数。