首页 > 编程笔记 > C语言笔记(精华版)

C语言头文件大全(29个头文件详解)

C语言的头文件包含了丰富的函数、宏定义和类型声明,可以由 #include 指令引入到源文件(.c 文件)中。随着C语言标准的不断演进(C89 -> C99 -> C11 -> C17),头文件的数量和功能也在不断扩展,以适应现代编程的需求。
 

下面的表格是一个C语言头文件大全,详细列出了不同C语言标准(C89、C99、C11 和 C17)所引入的头文件,同时包括了它们的作用和主要内容。
 

C语言头文件大全
引入标准 头文件 作用 主要内容
C89 <assert.h> 提供断言功能,用于程序调试 提供了 assert 宏,用于在程序中插入诊断点。当 assert 的条件为假时,程序会中止并打印出错误信息,包括文件名和行号。这对于调试和确保程序的正确性非常有用。
<ctype.h> 字符类型判断和转换 包含了用于字符分类和转换的函数。例如,isalpha 用于检查字符是否为字母,tolower 用于将字符转换为小写。这些函数在处理文本和字符串时非常有用。
<errno.h> 定义了错误码相关的宏和变量 定义了错误码相关的宏和变量。它包含 errno 变量,用于存储最近一次发生的错误的错误码,以及一些常见错误的宏定义,如 EDOM(定义域错误)、ERANGE(结果超出范围)等。
<float.h> 定义浮点类型的特性,包括范围和精度 定义了与浮点类型相关的一些限制和常量。例如,FLT_MAX 表示 float 类型的最大值,DBL_EPSILON 表示 double 类型的最小精度等。这些常量对于需要精确控制浮点运算的程序非常重要。
<iso646.h> 替代关系操作符和位操作符的宏 定义了一些替代关系操作符和位操作符的宏。例如,and 代替 &&,or 代替 ||,not 代替 !。这些宏主要用于提高代码的可读性,特别是在某些键盘布局中难以输入这些符号的情况下。
<limits.h> 定义整数类型的取值范围 定义了整数类型的范围限制。例如,INT_MAX 表示 int 类型的最大值,CHAR_BIT 表示一个字节的位数。这些常量对于编写可移植的代码非常重要,因为不同的系统可能有不同的整数范围。
<locale.h> 本地化支持 提供了本地化相关的函数和类型。它包含 setlocale 函数用于设置或查询程序的当前区域设置,以及 struct lconv 类型用于存储区域设置的数字和货币格式信息。
<math.h> 数学函数库 包含了大量的数学函数。例如,sin、cos、tan 等三角函数,exp、log、pow 等指数和对数函数,以及 floor、ceil 等取整函数。这个头文件对于进行数学计算的程序非常重要。
<setjmp.h> 非局部跳转 提供了非局部跳转的功能。它定义了 setjmp 和 longjmp 函数,允许程序在函数调用之间进行跳转。这通常用于实现异常处理和复杂的控制流。
<signal.h> 信号处理 定义了信号处理相关的函数和常量。它包括 signal 函数用于设置信号处理程序,以及各种信号常量如 SIGINT(中断信号)、SIGSEGV(段错误信号)等。
<stdarg.h> 可变参数函数支持 定义了处理可变参数列表的宏,包括了 va_list 类型和 va_start、va_arg、va_end 宏,用于访问函数的可变参数。这对于实现类似 printf 这样的可变参数函数非常重要。
<stddef.h> 常用类型和宏定义 定义了一些常用的类型和宏。例如,size_t 类型用于表示大小,NULL 宏表示空指针常量,offsetof 宏用于计算结构体成员的偏移量。
<stdio.h> 标准输入输出 是标准输入输出库,提供了大量用于文件和控制台 I/O 的函数。它包括 printf、scanf 等格式化输入输出函数,fopen、fclose 等文件操作函数,以及 FILE 类型的定义。
<stdlib.h> 通用工具函数 提供了多种通用工具函数,包括内存分配函数(malloc、free),随机数生成函数(rand),字符串转换函数(atoi、atof),以及程序终止函数(exit)等。
<string.h> 字符串处理 包含了字符串处理函数。例如,strcpy 用于复制字符串,strcmp 用于比较字符串,strlen 用于计算字符串长度。这个头文件对于处理 C 风格字符串非常重要。
<time.h> 时间和日期 包含了时间和日期相关的函数和类型。它定义了 time_t 类型表示日历时间,struct tm 表示分解时间,以及 time、localtime 等函数用于获取和操作时间。
C99 <complex.h> 复数运算支持 引入了复数类型支持,包括复数的数学运算函数。它定义了 _Complex 关键字和 complex 宏,以及一系列用于复数运算的函数,如 cabs(复数绝对值)、cexp(复数指数)等。
<fenv.h> 浮点环境访问 提供了访问浮点环境的函数。浮点环境包括浮点状态标志、控制模式等。这个头文件定义了操作浮点环境的函数,如 fegetround(获取当前舍入模式)、fesetexceptflag(设置浮点异常标志)等。
<inttypes.h> 整数类型格式转换 提供了一组用于操作精确宽度整数类型的宏。它包含了 <stdint.h> 的所有内容,并添加了一些额外的宏,如 PRId32(用于 printf 格式化 32 位有符号整数)等。
<stdbool.h> 布尔类型支持 引入了布尔类型支持。它定义了 _Bool 类型和 bool、true、false 宏,使得在 C 语言中可以更方便地使用布尔值。
<stdint.h> 固定大小的整数类型 定义了一组具有精确宽度的整数类型。例如,int32_t 表示 32 位有符号整数,uint64_t 表示 64 位无符号整数。这对于需要精确控制整数大小的程序非常有用。
<tgmath.h> 通用类型数学宏 提供了类型泛型数学宏。它将 <math.h> 和 <complex.h> 中的函数包装成宏,使得这些函数可以根据参数类型自动选择合适的实现。
<wchar.h> 宽字符支持 定义了扩展的多字节和宽字符支持。它包括 wchar_t 类型和一系列以 w 开头的宽字符函数,如 wprintf、wscanf 等。
<wctype.h> 宽字符分类和映射工具 提供了宽字符分类和映射的函数。它是 <ctype.h> 的宽字符版本,包括 iswalpha、towlower 等函数。
C11 <stdalign.h> 内存对齐相关的宏 提供了与内存对齐相关的宏。它定义了 alignas 和 alignof 关键字的替代宏,用于指定和查询数据类型的对齐要求。
<stdatomic.h> 原子操作支持 提供了原子操作的支持。它定义了原子类型和原子操作函数,用于在多线程环境中安全地访问共享数据,而无需使用互斥锁;比如 atomic_int、atomic_flag 等类型,以及 atomic_store、atomic_load 等函数。
<stdnoreturn.h> 不返回函数 定义了 noreturn 宏,用于标记永不返回的函数。这有助于编译器进行优化和生成更准确的警告。
<threads.h> 多线程支持 提供了多线程支持。它定义了创建和管理线程的函数,如 thrd_create 用于创建新线程,mtx_lock 和 mtx_unlock 用于互斥锁操作等。
<uchar.h> Unicode 字符支持(UTF-16 和 UTF-32 编码) 提供了 Unicode 和 UTF-16/UTF-32 字符支持。它定义了 char16_t 和 char32_t 类型,以及用于处理这些类型的函数。

 

C17 并没有添加新的功能和语法特性,也没有引入新的头文件,仅仅修正了 C11 标准中已知的一些缺陷。

 

截至目前,更新的 C2x 标准只公布了草案,尚未正式发布,因此目前最新的C语言标准仍是 C17。


这就是目前所有的C语言头文件,它涵盖了C语言标准库的全部功能,从基本的输入输出到高级的多线程和原子操作。如果你想进一步了解每个头文件都包含了什么内容,请转到:C语言标准库参考手册

相关文章