全C标准(至少含C20)标准库头文件合规性要求查询
C标准库头文件合规性清单(覆盖C89至C20标准)
执行环境前置说明
C标准定义两类执行环境,头文件强制支持范围与环境类型直接相关:
- 独立环境:无操作系统依赖,多用于嵌入式固件、操作系统内核开发场景,仅要求支持最小集合的基础头文件
- 宿主环境:运行在通用操作系统之上的常规应用开发场景,要求支持绝大多数标准头文件
C89/C90(ISO/IEC 9899:1990)头文件
标注*的为独立环境强制要求的头文件,其余为宿主环境强制要求:
- *
<stddef.h>:通用类型定义(size_t、ptrdiff_t、NULL等) - *
<limits.h>:整数类型最值、位数特性定义 - *
<float.h>:浮点类型精度、最值特性定义 - *
<stdarg.h>:可变参数列表处理 <assert.h>:运行时断言宏<ctype.h>:字符分类、转换函数<errno.h>:全局错误码定义<locale.h>:区域化配置支持<math.h>:通用数学运算函数<setjmp.h>:非局部跳转支持<signal.h>:信号处理函数<stdio.h>:标准输入输出函数<stdlib.h>:通用工具函数(内存分配、字符串转换、随机数等)<string.h>:内存、字符串处理函数<time.h>:时间、日期处理函数
C99(ISO/IEC 9899:1999)新增头文件
标注*的为独立环境强制要求的头文件,其余为宿主环境强制要求:
- *
<stdbool.h>:布尔类型(bool)与真值(true、false)定义 - *
<stdint.h>:定宽整数类型(uint8_t、int32_t等)定义 - *
<inttypes.h>:定宽整数的格式化输入输出宏定义 <complex.h>:复数运算函数与类型定义<fenv.h>:浮点运算环境控制<iso646.h>:C运算符替代宏(and、or、not等)<tgmath.h>:泛型数学函数(自动适配整数、浮点、复数参数)<wchar.h>:宽字符处理函数<wctype.h>:宽字符分类、转换函数
C11(ISO/IEC 9899:2011)新增头文件
标注*的为独立环境强制要求的头文件,其余为宿主环境强制要求:
- *
<stdalign.h>:内存对齐属性宏(alignas、alignof) - *
<stdnoreturn.h>:无返回函数属性宏(noreturn) <uchar.h>:Unicode字符类型(char16_t、char32_t)与转换函数
C11可选头文件(全环境可选,无强制要求)
<stdatomic.h>:原子操作类型与函数<threads.h>:多线程操作类型与函数
C20(ISO/IEC 9899:2020)新增头文件
无独立环境强制要求的新增头文件,宿主环境强制要求:
<stdbit.h>:位操作工具宏与函数(位计数、位旋转、字节序转换等)
C20未新增可选头文件,可选范围与C11一致。
合规性判定总规则
- 独立环境合规最低要求:仅需实现所有标注*的基础头文件,其余所有头文件均为可选
- 宿主环境合规最低要求:除
<stdatomic.h>、<threads.h>、<complex.h>、<tgmath.h>、<fenv.h>明确为可选外,其余所有上述标准头文件必须实现
内容的提问来源于stack exchange,提问作者barahin844
相关产品推荐
相关产品推荐

