1.C标准库头文件
C标准库的接口由以下标头集合定义。
<assert.h> | 有条件编译的宏,将其参数与零进行比较 |
<complex.h> (C99) | 复数算法 |
<ctype.h> | 确定字符数据中包含的类型的函数 |
<errno.h> | 宏报告错误情况 |
<fenv.h> (C99) | 浮点环境 |
<float.h> | 浮动类型的限制 |
<inttypes.h> (C99) | 整数类型的格式转换 |
<iso646.h> (C95) | 备用运算符拼写 |
<limits.h> | 基本类型的大小 |
<locale.h> | 本地化实用程序 |
<math.h> | 常用数学功能 |
<setjmp.h> | 非本地跳 |
<signal.h> | 信号处理 |
<stdalign.h> (C11) | alignas和alignof便利宏 |
<stdarg.h> | 可变参数 |
<stdatomic.h> (C11) | 原子类型 |
<stdbool.h> (C99) | 布尔类型的宏 |
<stddef.h> | 通用宏定义 |
<stdint.h> (C99) | 定宽整数类型 |
<stdio.h> | 输入输出 |
<stdlib.h> | 通用实用程序:内存管理,程序实用程序,字符串转换,随机数 |
<stdnoreturn.h> (C11) | noreturn便利宏 |
<string.h> | 字符串处理 |
<tgmath.h> (C99) | 类型通用数学(宏包装math.h和complex.h) |
<threads.h> (C11) | 线程库 |
<time.h> | 时间/日期实用程序 |
<uchar.h> (C11) | UTF-16和UTF-32字符实用程序 |
<wchar.h> (C95) | 扩展的多字节和宽字符实用程序 |
<wctype.h> (C95) | 确定宽字符数据中包含的类型的函数 |
参考文献
- C17标准(ISO / IEC 9899:2018):
- 7.1.2标准页眉(p:131-132)
- C11标准(ISO / IEC 9899:2011):
- 7.1.2标准页眉(p:181-182)
- C99标准(ISO / IEC 9899:1999):
- 7.1.2标准页眉(p:165)
- C89 / C90标准(ISO / IEC 9899:1990):
- 4.1.2标准头
也可以看看
C ++文档的C ++标准库头文件
|
2.C ++标准库标头
C ++标准库的接口由以下标头集合定义。
C兼容性标头
对于表单的某些C标准库标头 xxx。H,C ++标准库都包含一个名称相同的标头和该格式的另一个标头 cxxx (全部有意义 cxxx 标头在上面列出)。
除了 复杂。H ,每个 xxx。H C ++标准库中包含的标头在全局名称空间中放置了每个名称, cxxx 标头应该放在 性病 命名空间。
这些标头还可以在 性病 命名空间,以及相应的 cxxx 标头还可以在全局名称空间中声明相同的名称:包括<cstdlib>绝对可以提供 std :: malloc 并可能提供 :: malloc。包括<stdlib.h>绝对可以提供:: malloc 并可能提供 std :: malloc。这甚至适用于不属于C标准库的函数和函数重载。
(已弃用)
| 行为与<cassert>相同 |
(已弃用)
| 行为似乎来自<cctype>的每个名称都放在全局命名空间中 |
(已弃用)
| 行为与<cerrno>相同 |
(C ++ 11)(已弃用)
| 行为好像<cfenv>中的每个名称都放在全局名称空间中 |
(已弃用)
| 行为与<cfloat>相同 |
(C ++ 11)(已弃用)
| 行为似乎来自<cinttypes>的每个名称都放在全局命名空间中 |
(已弃用)
| 行为与<climits>相同 |
(已弃用)
| 行为似乎来自<clocale>的每个名称都放在全局名称空间中 |
(已弃用)
| 行为,就好像<cmath>中的每个名称都放在全局命名空间中一样,数学特殊功能的 名称除外 |
(已弃用)
| 行为似乎来自<csetjmp>的每个名称都放在全局名称空间中 |
(已弃用)
| 行为似乎来自<csignal>的每个名称都放在全局命名空间中 |
(已弃用)
| 行为似乎来自<cstdarg>的每个名称都放在全局命名空间中 |
(已弃用)
| 行为好像<cstddef>中的每个名称都放在全局命名空间中, 但函数名称和相关函数除外 std::byte |
(C ++ 11)(已弃用)
| 行为似乎来自<cstdint>的每个名称都放在全局命名空间中 |
(已弃用)
| 行为似乎来自<cstdio>的每个名称都放在全局名称空间中 |
(已弃用)
| 行为似乎来自<cstdlib>的每个名称都放在全局名称空间中 |
(已弃用)
| 行为似乎来自<cstring>的每个名称都放在全局名称空间中 |
(已弃用)
| 行为似乎来自<ctime>的每个名称都放在全局名称空间中 |
(C ++ 11)(已弃用)
| 行为似乎来自<cuchar>的每个名称都放在全局名称空间中 |
(已弃用)
| 行为似乎来自<cwchar>的每个名称都放在全局名称空间中 |
(已弃用)
| 行为似乎来自<cwctype>的每个名称都放在全局名称空间中 |
空的C标头
标头<complex.h>
,<ccomplex>
,<tgmath.h>
,和<ctgmath>
不包含C标准库中的任何内容,而是仅仅包括C ++标准库中的其他头。在C ++中,不建议使用所有这些标头。
(C ++ 11)(在C ++ 17中弃用)(在C ++ 20中删除)
| 仅包含标头<complex> |
(C ++ 11)(已弃用)
| 仅包含标头<complex> |
(C ++ 11)(在C ++ 17中弃用)(在C ++ 20中删除)
| 仅包含标头<complex>和<cmath>:tgmath.h 这些标头已经提供了与C标头内容等效的重载 |
(C ++ 11)(已弃用)
| 仅包含标头<complex>和<cmath> |
无意义的C标头
标头<ciso646>
,<cstdalign>
和<cstdbool>
在C ++中没有意义,因为它们在C中提供的宏是C ++中的语言关键字。
(在C ++ 20中已删除)
| 空标题。在C中出现的宏是iso646.h C ++中的关键字 |
(已弃用)
| 没有效果 |
(C ++ 11)(在C ++ 17中弃用)(在C ++ 20中删除)
| 定义一个兼容性宏常量 |
(C ++ 11)(已弃用)
| 定义一个兼容性宏常量 |
(C ++ 11)(在C ++ 17中弃用)(在C ++ 20中删除)
| 定义一个兼容性宏常量 |
(C ++ 11)(已弃用)
| 定义一个兼容性宏常量 |
不支援的C标头
C标头<stdatomic.h>
,<stdnoreturn.h>
和<threads.h>
不包含在C ++中,并且没有cxxx 等价物。
实验库
C ++ TR / TS还定义了标头的多个集合。
也可以看看
C文档的C标准库头文件
|