每个标准库函数都会被声明在一个或多个标准头(standard header)中。这些标准头也包括了 C 语言标准提供的所有宏和类型的定义。
每个标准头都包含一组相关的函数声明、宏和类型定义。例如,数学函数声明在头文件 math.h 中。标准头也称之为头文件(header file),因为每个标准头内容通常被存储在一个文件中。然而,严格来说,C 语言标准并没有强制要求将标准头组织成文件。
C 标准定义了以下 29 个头文件(其中有星号标识的是 C11 新增的):
头文件 complex.h、stdatomic.h 和 threads.h 是可选的。有一些 C11 实现版本可以定义一些标准宏,以指示该版本不包括前述可选的头文件。这里,如果宏 __STDC_NO_COMPLEX__、宏 __STDC_NO_ATOMICS__,或宏 __STDC_NO_THREADS__ 被定义为值 1,则该实现版本就没有包括这些宏所对应的可选头文件。
通过 #include 命令,可以把一个标准头文件内容插入到一个源代码文件中。其中 #include 命令必须放在所有函数的外面。你可以以任意顺序包含多个标准头文件。然而,在针对某个头文件使用 #include 命令之前,程序不可以定义任何与该头文件内标识符相同的宏名称。为了确保程序符合该条件,总是在源代码开始的地方,首先包含所需的标准头文件,然后再包含自己定义的头文件。
运行环境
C 程序只会在两种运行环