一致性
来自 cppreference.cn
一致性具有三重定义
- 严格一致程序 - 仅使用定义良好的语言结构,即具有单一行为的结构。它不包括未指明、未定义或实现定义的行为,并且不超过任何最小实现限制。
- 一致程序 - 可被一致实现接受。
- 一致实现 -
- 一致的宿主实现应接受任何严格一致程序。
- 一致的独立实现应接受任何严格一致程序,其中库子句(子句 7)中指定特性的使用仅限于独立标准库头文件(见下文)的内容。
- 一致实现可以有扩展(包括额外的库函数),前提是它们不改变任何严格一致程序的行为。
目录 |
[编辑] 解释
标准没有定义翻译单元的任何最小实现限制。宿主环境具有操作系统;独立环境则没有。在宿主环境中运行的程序可以使用库子句(子句 7)中描述的所有特性;在独立环境中运行的程序可以使用子句 4 要求的库特性子集。
[编辑] 独立标准库头文件
独立实现必须提供所有完全独立头文件中的所有标准库特性。
某些标准库头文件是有条件独立的。
某些标准库头文件是部分独立的。
|
(自 C23 起) |
完全独立标准库头文件 | |
<float.h> | 浮点类型限制 |
<iso646.h> (C95 起) | 备用运算符拼写 |
<limits.h> | 整数类型范围 |
<stdalign.h> (C11 起) | alignas 和 alignof 便利宏 |
<stdarg.h> | 可变参数 |
<stdbool.h> (C99 起) | 布尔类型宏 |
<stddef.h> | 通用宏定义 |
<stdint.h> (C99 起) | 固定宽度整数类型 |
<stdnoreturn.h> (C11 起) | noreturn 便利宏 |
<stdbit.h> (C23 起) | 处理类型字节和位表示的宏 |
有条件完全独立标准库头文件 | |
<fenv.h> (C23 起) | 浮点环境 |
<math.h> (C23 起) | 通用数学函数 |
部分独立标准库头文件 | |
<stdlib.h> (C23 起) | 通用工具:内存管理、程序工具、字符串转换、随机数、算法 |
<string.h> (C23 起) | 字符串处理 |
[编辑] 参考
- C23 标准 (ISO/IEC 9899:2024)
- 4 一致性 (p: 9-10)
- C17 标准 (ISO/IEC 9899:2018)
- 4 一致性 (p: 4)
- C11 标准 (ISO/IEC 9899:2011)
- 4 一致性 (p: 8-9)
- C99 标准 (ISO/IEC 9899:1999)
- 4 一致性 (p: 7-8)
- C89/C90 标准 (ISO/IEC 9899:1990)
- 1.7 符合性
[编辑] 另见
C++ 文档 关于 独立与宿主实现
|