内容来自cppreference.com
C语言保留字
紫色表示C99标准化、无色表示基础保留字、蓝色表示C90:
int | short | long | double | float | char | if | else | for | while | do |
goto | switch | case | static | struct | emun | union | typedef | return | break | continue |
default | extern | const | void | signed | sizeof | register | unsigned | restrict | volatile | inline |
_Alignas | _Alignof | _Atomic | _bool | _Complex | _Generic | _Imaginary | _Noreturn | _Static_assert | _Thread_local | volatile |
C语言库
assert.h | ctype.h | errno.h | float.h | limits.h | locale.h | math.h | setjmp.h | signal.h | stdarg.h | stddef.h | stdio.h | stdlib.h | string.h | time.h |
ios646.h | wchar.h | wctype.h | ||||||||||||
complex.h | fenv.h | inttypes.h | stdbool.h | stdint.h | tgmath.h | |||||||||
stdalign.h | stdatomic.h | stdnoreturn.h | uchar.h | threads.h |
C90
assert.h | 主要是用于判断当前逻辑是否正常,如果不正常则将报错。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ctypet.h | 主要是用于判断当前字符时哪种类型(例如是否是数组,是否是字母等)
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
errno.h |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
limits.h |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
locale.h |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
math.h |
宏常量
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
setjmp.h | 非局部跳转 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
signal.h |
需要注意的是不同机构,信号是不一样的 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stdarg.h | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stddef.h | 额外基本类型及便利宏 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stdlib.h | 动态内存管理 函数
终止程序 下列函数管理程序终止和资源清理。
访问环境
伪随机数生成
算法
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
string.h |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
time.h
| 函数
常量
类型 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stdio.h | 类型
预定义标准流
函数
宏常量
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
C95:
iso646.h | 有使用非 ISO 646 字符的替用拼写,作为宏定义于 <iso646.h> :
字符 & 及 ! 在 ISO-646 下不变,但仍然为这些运算符提供替用写法,以使用这些字符适应更加受限的历史字符集。 没有等于运算符的替用拼写 == ,因为字符 = 已在所有受支持字符集中存在。 替用记号(C95) 下列替用记号是核心语言的一部分,而且在语言的所有方面,每个替用记号表现准确等同于其基本记号,除了其拼写(字符串化运算符可令拼写可见)。双字另种记号有时被称为“双标符”。
三标符 下列三字符组(三标符)在注释前分析并在字符串字面量中得到辨认,而且每个三标符的出现会被对应的基本字符取代:
因为三标符在早期处理,故如 // Will the next line be executed?????/ 的注释可以有效地注释掉下一行,且如 "What's going on??!" 的字符串字面量被分析成 "What's going on|" 。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
wctype.h |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
wchar.h |
|
C99
complex.h |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fenv.h |
函数
宏
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
inttypes.h |
fprintf 系列函数的格式常量 此处列出的每个 PRI 宏当且仅当实现定义对应的 typedef 名才得以定义。
fscanf 系列函数的格式常量 此处列出的每个 SCN 宏当且仅当实现定义对应的 typedef 名且拥有适合该类型的 fscanf 长度修饰符才得以定义。
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stdbool.h |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stdint.h | 类型
实现可在 N 不是 8、 16、 32 或 64 时定义 typedef 名 intN_t、 int_fastN_t、 int_leastN_t、 uintN_t、 uint_fastN_t 及 uint_leastN_t 。形为 intN_t 的 typedef 名仅若实现支持有该宽度而无填充的整数类型才可以得以定义。从而 uint24_t 代表宽度准确地为 24 位的无符号整数类型。 下面列出的每个宏当且仅当实现定义对应的 typedef 名时才得以定义。宏 INTN_C 与 UINTN_C 分别对应 typedef 名 int_leastN_t 与 uint_leastN_t 。 宏常量
最小宽度整数常量的函数宏
#include <stdint.h>
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tgmath.h | 泛型数学
头文件 <tgmath.h> 包含头文件 <math.h> 及 <complex.h> ,并定义了几种泛型宏。这些宏会根据参数类型决定要调用的实际函数。 对于每个宏,在<math.h>无后缀版函数中,所对应的实数类型为 double 的参数,即是所谓的泛型参数。(例如,pow的两个参数都是泛型参数,但scalbn只有第一个参数是泛型参数) 如下所述,使用 <tgmath.h> 宏时,传递给泛型参数的参数类型,会决定宏所选择的参数。若参数的类型与所选函数的参数类型不兼容,则行为未定义。(例如,若将复数参数传入实数限定的 tgmath 宏: float complex fc; ceil(fc) 或 double complex dc; double d; fmax(dc, d) 就是未定义行为的例子) 注意:泛型宏在 C99 中曾以实现定义行为实现,但 C11 关键词 _Generic 使得以可移植方式实现这些宏成为可能。 复数/实数泛型宏 对于所有拥有实数及复数对应的函数,存在泛型宏,调用下列函数之一: 上述规则的一个例外是 fabs 宏(见下表)。 调用的函数按以下方式决定: 泛型宏如下所示:
实数限定函数 对于所有无复数对应的函数,除 modf 外都存在泛型宏 XXX ,它会调用实数函数变体的中的一种: 以下列方式确定调用的函数:
复数限定函数 对于所有没有实数对应的复数函数,存在泛型宏 cXXX ,它会调用复数函数的变体: 调用的函数按以下方式决定:
|
C11
stdalign.h |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stdatomic.h | 原子操作
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stdnoreturn.h |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
线程
互斥
条件变量
线程局域存储
保留标识符 在 C 标准的未来修订中: 为函数名保留的表示符始终潜在地 (C23 起)对作为带外部链接的标识符的使用保留,而此处列出的其他标识符在包含 <stdatomic.h> 时潜在地 (C23 起)被保留。 声明、定义或 #undef 这种标识符导致未定义行为,若标准或实现提供它 (C23 起)。可移植的程序不应使用这些标识符。
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uchar.h |