头文件是拓展名为 .h 的文本文件,内容为标准 C 代码。根据习惯,头文件储存函数声明、宏定义等内容。
头文件大体分为两类:标准库的头文件和自定义的头文件。标准库头文件使用 #include <file> 引入,自定义头文件使用 #includ "file" 引入。
任何文件都可以像头文件一样通过
#include预处理器指令引入,但是习惯上使用.h文件。
头文件中一般只有函数声明而没有函数定义。函数会被定义在其他源文件或二进制库文件中,在编译时由编译器链接。当然,执意要在头文件内定义函数也是可以的。
ANSI C 标准提供了许多标准库,分别对应不同的头文件,提供了许多用于IO、数学计算、内存管理的函数和宏。
这些标准库直接与操作系统和目标平台对接,几乎已经成为了 C 语言本身的一部分。
| 标准库头文件 | 描述 |
|---|---|
| assert.h | 提供宏 assert,用于断言检查 |
| complex.h | 提供复数运算的函数和宏 |
| ctype.h | 提供字符处理函数 |
| errno.h | 提供错误码变量 errno,用于处理错误 |
| fenv.h | 提供对浮点环境的控制 |
| float.h | 定义浮点类型的限制值 |
| limits.h | 定义各种类型的限制值 |
| locale.h | 提供与地域化相关的函数和宏 |
| math.h | 提供科学计算函数 |
| setjmp.h | 提供非本地跳转功能的宏和函数 |
| signal.h | 提供处理信号的函数和宏 |
| stdarg.h | 提供处理可变参数函数的宏 |
| stdbool.h | 提供布尔类型的宏 |
| stddef.h | 定义了一些通用类型和宏 |
| stdint.h | 定义了精确宽度的整数类型 |
| stdio.h | 提供标准输入输 |
| stdlib.h | 提供标准库函数 |
| string.h | 提供字符串操作函数 |
| tgmath.h | 提供泛型数学函数 |
| time.h | 提供时间和日期函数 |
写在最后
如果需要写一段代码实现某些功能,不妨取标准库里找找有没有现成的函数,避免重复造轮子。