跳到主要内容

C23 · 前置:零基础

C 速查手册

面向零基础与已有经验读者的 C23 知识点速查手册。

22 / 218 / 1060

公开章节 / 任务入口 / 关键词与别名

章节地图

  1. 入门导览与第一个程序
  2. 基本类型、对象、声明与初始化
  3. 运算符、表达式、求值与类型转换
  4. 条件、循环与跳转
  5. 函数、参数、返回值与递归
  6. 数组与字符串
  7. 指针、指针运算与回调
  8. 动态内存、生命周期与所有权
  9. 结构体、联合、枚举、位域与类型别名
  10. 作用域、链接与存储期
  11. 声明、定义、头文件与预处理器
  12. 限定符、对象访问与程序行为边界
  13. 标准库地图、错误约定与程序控制
  14. 格式化输入输出、流与文件
  15. 字符串、内存、字符分类与本地化
  16. 数值转换、数学、排序、查找、随机与时间
  17. 信号、原子操作与标准线程
  18. 多文件项目、编译链接与构建系统
  19. 警告、调试、静态分析与消毒器
  20. 自动化测试、接口设计、风格与文档
  21. C 标准演进、特性检测与可移植性
  22. 类型、运算符、声明、头文件与术语总索引

按任务查找

安全遍历数组和字符串
数组与字符串 · 遍历、哨兵与边界
安全分类和转换字符值
字符串、内存、字符分类与本地化 · 字符分类、大小写与合法参数
安全复制和检查对象表示
限定符、对象访问与程序行为边界 · 字符类型访问与 memcpy
安全更新对象
运算符、表达式、求值与类型转换 · 赋值、自增自减与复合赋值
安全计算分配字节数
动态内存、生命周期与所有权 · 分配大小、元素数量与溢出
安全使用位域而不假设位布局
结构体、联合、枚举、位域与类型别名 · 位域、宽度与实现边界
安全执行整数工具和检查算术
数值转换、数学、排序、查找、随机与时间 · 整数工具与检查算术
按参数类型选择输出格式
格式化输入输出、流与文件 · printf 家族与格式化输出
按接口名称定位库合同
类型、运算符、声明、头文件与术语总索引 · 标准库接口
按名称、分类和来源章节定位知识
类型、运算符、声明、头文件与术语总索引 · 索引范围与使用方法
按任务反查数值和时间头文件
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间接口地图
按任务反查信号和并发头文件
信号、原子操作与标准线程 · 信号、原子与线程接口地图
按任务选择标准库头文件
标准库地图、错误约定与程序控制 · 标准库头文件与任务地图
按元素数量读写二进制块
格式化输入输出、流与文件 · fread、fwrite 与二进制块读写
按运算符类别定位表达式规则
类型、运算符、声明、头文件与术语总索引 · 运算符与表达式类别
把 Make 目标映射为 CMake 目标
多文件项目、编译链接与构建系统 · CMake 目标模型入口
把实现假设隔离并写入接口
限定符、对象访问与程序行为边界 · 可移植性边界与实现假设
保持测试可重复且无残留
自动化测试、接口设计、风格与文档 · 确定性、隔离与清理
保存、移动或恢复文件位置
格式化输入输出、流与文件 · 文件位置与重新定位
比较字符串并查找字符或子串
字符串、内存、字符分类与本地化 · 比较、搜索与子串定位
避免把本机行为当作 ISO C 保证
C 标准演进、特性检测与可移植性 · 常见陷阱
避免误读工具结果
警告、调试、静态分析与消毒器 · 工具边界与常见诊断陷阱
编写布尔条件
运算符、表达式、求值与类型转换 · 比较、逻辑与条件运算
编写第一个 C 程序
入门导览与第一个程序 · 第一个完整程序
编写多路分支
条件、循环与跳转 · switch、case 与 default
编写二路分支
条件、循环与跳转 · if 与 else
编写基本 Make 规则
多文件项目、编译链接与构建系统 · Make 目标、前置条件与配方
编写可接受空可变参数的宏
声明、定义、头文件与预处理器 · 可变参数宏与 C23 __VA_OPT__
编写可终止递归
函数、参数、返回值与递归 · 递归、基例与终止条件
编写无框架测试程序
自动化测试、接口设计、风格与文档 · 标准 C 最小测试夹具
编写有界循环
条件、循环与跳转 · for 循环
编译并解释能力探测输出
C 标准演进、特性检测与可移植性 · 能力探测程序及输出解释
编译并运行 C 程序
入门导览与第一个程序 · 编译与运行
遍历二维数组
数组与字符串 · 多维数组与行优先布局
表示并检查缺失地址
指针、指针运算与回调 · C23 空指针
查看类型大小与范围
基本类型、对象、声明与初始化 · 大小与范围
查询对象大小和对齐
运算符、表达式、求值与类型转换 · 显式转换、大小与对齐
查询对象限定、存储期和链接规则
类型、运算符、声明、头文件与术语总索引 · 限定符、存储期与链接
查询和控制浮点环境
数值转换、数学、排序、查找、随机与时间 · 浮点环境、舍入与异常标志
查询或切换程序 locale
字符串、内存、字符分类与本地化 · locale 类别与 setlocale
查询行为分类和跨领域术语
类型、运算符、声明、头文件与术语总索引 · 行为、诊断、并发与可移植性术语
查询预处理指令和宏规则
类型、运算符、声明、头文件与术语总索引 · 预处理、宏与条件编译
拆分多文件声明和定义
多文件项目、编译链接与构建系统 · 翻译单元、声明与定义
初始化 C 对象
基本类型、对象、声明与初始化 · 初始化
初始化并复制聚合对象
结构体、联合、枚举、位域与类型别名 · 聚合初始化、指定初始化器与复制
处理宽字符串并分类宽字符
字符串、内存、字符分类与本地化 · 宽字符、宽字符串与字符分类
创建线程并正确汇合或分离
信号、原子操作与标准线程 · 标准线程能力、创建与汇合
从标准头和实现文档取得范围而不硬编码数据模型
C 标准演进、特性检测与可移植性 · 翻译限制、整数范围与数据模型
从类型词项跳转到定义章节
类型、运算符、声明、头文件与术语总索引 · 基本类型、派生类型与复合类型
从零开始学习 C
入门导览与第一个程序 · 后续阅读路线
从头文件名跳转到对应接口地图
类型、运算符、声明、头文件与术语总索引 · 标准头文件
调用带参数函数
函数、参数、返回值与递归 · 调用、实参与按值传递
定位构建失败阶段
多文件项目、编译链接与构建系统 · 预处理、编译、汇编与链接
定义并调用回调接口
指针、指针运算与回调 · 函数指针与类型明确的回调
定义和识别结构体类型
结构体、联合、枚举、位域与类型别名 · 结构体类型、标签与成员
读取可变参数
函数、参数、返回值与递归 · 可变参数函数
读取命令行参数和环境字符串
标准库地图、错误约定与程序控制 · 命令行参数与环境查询
反查声明语法和声明符组成
类型、运算符、声明、头文件与术语总索引 · 声明、声明符与类型名
防止头文件重复包含
声明、定义、头文件与预处理器 · #include 与 include guard
分类浮点值并检查数学错误
数值转换、数学、排序、查找、随机与时间 · 实数数学、分类与错误报告
分离构建配置和产物
多文件项目、编译链接与构建系统 · Debug、Release 与构建配置
根据对象是否重叠选择内存接口
字符串、内存、字符分类与本地化 · 内存操作与对象重叠
根据目标容量选择字符串操作
字符串、内存、字符分类与本地化 · 长度、复制与拼接
根据位置判断 static 与 extern 的作用
作用域、链接与存储期 · static 与 extern
根据消息定位构建阶段
警告、调试、静态分析与消毒器 · 编译期与链接期诊断
根据执行环境调整入口和库假设
C 标准演进、特性检测与可移植性 · hosted 与 freestanding
构建并链接静态库
多文件项目、编译链接与构建系统 · 静态库与归档工具
管理文件名和临时流
格式化输入输出、流与文件 · 文件重命名、删除与临时文件
管理一次初始化和每线程状态
信号、原子操作与标准线程 · 一次初始化与线程专用存储
划分多文件程序的翻译单元
声明、定义、头文件与预处理器 · 翻译单元与多文件程序
计算数组元素数量
数组与字符串 · 数组初始化、长度推断与 sizeof
计算指针区间长度
指针、指针运算与回调 · 指针相减与比较
记录接口契约和最小用法
自动化测试、接口设计、风格与文档 · API 注释与使用示例
检测受支持的未定义行为
警告、调试、静态分析与消毒器 · UndefinedBehaviorSanitizer 与行为边界
检测越界和释放后使用
警告、调试、静态分析与消毒器 · AddressSanitizer 与内存错误
检查 C 编译器
入门导览与第一个程序 · 工具链与命令行
检查库函数返回的失败信号
标准库地图、错误约定与程序控制 · 返回值、空指针与哨兵值
检查文本数值转换是否完整成功
数值转换、数学、排序、查找、随机与时间 · 文本数值转换与结束位置
检查运行时状态
警告、调试、静态分析与消毒器 · 变量、表达式与数据流检查
检查转换数量并限制输入宽度
格式化输入输出、流与文件 · scanf 家族与格式化输入
建立严格警告基线
警告、调试、静态分析与消毒器 · 严格警告与把警告当错误
控制输出缓冲并在需要时刷新
格式化输入输出、流与文件 · 缓冲、刷新与交互式输出
控制循环与跳转
条件、循环与跳转 · break、continue 与 goto
明确错误和资源责任
自动化测试、接口设计、风格与文档 · 状态码、所有权与缓冲区接口
排查表达式副作用
运算符、表达式、求值与类型转换 · 求值顺序与副作用
排查表达式未定义行为
运算符、表达式、求值与类型转换 · 常见陷阱
排查并发正确性与资源错误
信号、原子操作与标准线程 · 数据竞争、死锁与生命周期陷阱
排查陈旧产物和依赖错误
多文件项目、编译链接与构建系统 · 常见构建陷阱
排查脆弱测试和模糊接口
自动化测试、接口设计、风格与文档 · 常见测试与接口陷阱
排查错误处理和终止流程
标准库地图、错误约定与程序控制 · 错误处理与程序控制陷阱
排查动态内存错误
动态内存、生命周期与所有权 · 常见陷阱
排查对象访问错误
限定符、对象访问与程序行为边界 · 限定符、别名与对象访问陷阱
排查格式、状态与读写切换错误
格式化输入输出、流与文件 · 流与文件操作陷阱
排查函数与递归错误
函数、参数、返回值与递归 · 常见陷阱
排查宏的重复求值
声明、定义、头文件与预处理器 · 宏展开、括号与副作用
排查聚合类型错误
结构体、联合、枚举、位域与类型别名 · 常见陷阱
排查控制流错误
条件、循环与跳转 · 嵌套控制流与常见陷阱
排查类型与初始化错误
基本类型、对象、声明与初始化 · 常见陷阱
排查容量、重叠和 locale 依赖错误
字符串、内存、字符分类与本地化 · 字符串、内存与本地化陷阱
排查数值和时间接口误用
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间陷阱
排查数组与字符串错误
数组与字符串 · 常见陷阱
排查头文件与预处理错误
声明、定义、头文件与预处理器 · 重复定义、宏污染与保留标识符
排查未定义与重复符号
多文件项目、编译链接与构建系统 · 目标文件、符号与链接诊断
排查指针错误
指针、指针运算与回调 · 常见陷阱
排查作用域、链接与生存期错误
作用域、链接与存储期 · 遮蔽、链接冲突与悬空对象
判断 C 条件真假
条件、循环与跳转 · 条件表达式与真假规则
判断 VLA 的适用边界
数组与字符串 · VLA 与变长修改类型
判断标识符的作用域种类
作用域、链接与存储期 · 文件、块、函数与函数原型作用域
判断标识符属于哪个名字空间
作用域、链接与存储期 · 标识符的名字空间
判断表达式分组
运算符、表达式、求值与类型转换 · 优先级、结合性与括号
判断表达式结果类型
运算符、表达式、求值与类型转换 · 表达式、操作数与结果类型
判断表达式能否修改对象
限定符、对象访问与程序行为边界 · const 与可修改左值
判断递归调用是否共享状态
作用域、链接与存储期 · 递归、自动状态与静态状态
判断动态对象何时开始和结束生存期
动态内存、生命周期与所有权 · 动态存储与分配对象的生存期
判断对象的存储期
作用域、链接与存储期 · 自动、静态、线程与已分配存储期
判断多个声明是否指向同一实体
作用域、链接与存储期 · 无链接、内部链接与外部链接
判断复数和类型泛化数学是否适用
数值转换、数学、排序、查找、随机与时间 · 复数与类型泛化数学
判断何时使用异常终止
标准库地图、错误约定与程序控制 · 异常终止与 abort
判断何时需要保留 volatile 访问
限定符、对象访问与程序行为边界 · volatile 与可观察访问
判断何时引入框架和 CI
自动化测试、接口设计、风格与文档 · 测试框架与 CI 入口
判断混合算术结果类型
运算符、表达式、求值与类型转换 · 算术运算与常用类型转换
判断库接口的调用前提与失败结果
标准库地图、错误约定与程序控制 · 接口契约、前置条件与失败约定
判断流的类型、方向和当前状态
格式化输入输出、流与文件 · FILE、标准流与流方向
判断哪些布局性质可移植
结构体、联合、枚举、位域与类型别名 · 成员顺序、填充、对齐与偏移
判断柔性数组成员的声明与大小边界
结构体、联合、枚举、位域与类型别名 · 柔性数组成员
判断实现是否提供边界检查接口
字符串、内存、字符分类与本地化 · Annex K 边界检查接口
判断释放后哪些指针失效
动态内存、生命周期与所有权 · free、生存期结束与悬空指针
判断受限指针的别名约定
限定符、对象访问与程序行为边界 · restrict 的访问契约
判断数组的有效下标
数组与字符串 · 数组类型、元素与有效下标
判断文件作用域声明的定义责任
声明、定义、头文件与预处理器 · 外部定义与暂定定义
判断限定符位于哪一层类型
限定符、对象访问与程序行为边界 · 限定类型与限定转换
判断一条声明是否也是定义
声明、定义、头文件与预处理器 · 声明与定义
判断指针转换是否合法
指针、指针运算与回调 · 指针类型与转换
判断重复声明是否兼容
作用域、链接与存储期 · 同一实体的多次声明
判断字符数组是否构成有效字符串
字符串、内存、字符分类与本地化 · 空字符结尾字符串与数组边界
判断左值类型是否允许访问对象
限定符、对象访问与程序行为边界 · 有效类型、兼容类型与别名访问
区分 C11、C17、C23 的定位与迁移目标
C 标准演进、特性检测与可移植性 · C11、C17、C23 基线地图
区分必需接口、条件接口和实现扩展
C 标准演进、特性检测与可移植性 · 头文件和库接口的可移植边界
区分标签名、类型别名和对象名
结构体、联合、枚举、位域与类型别名 · typedef 与类型别名
区分并组合测试层次
自动化测试、接口设计、风格与文档 · 单元、集成与命令行测试
区分代码单元、执行字符集与 Unicode 转换
字符串、内存、字符分类与本地化 · C23 编码字符类型与 Unicode 边界
区分对象字节与抽象值
限定符、对象访问与程序行为边界 · 对象表示、值表示与填充字节
区分快速终止与立即终止
标准库地图、错误约定与程序控制 · 快速与立即终止
区分两类宏并判断替换结果
声明、定义、头文件与预处理器 · 对象式宏与函数式宏
区分名字与对象的四类边界
作用域、链接与存储期 · 作用域、链接、存储期与生存期
区分首元素指针与数组地址
指针、指针运算与回调 · 数组与指针的关系
区分数组与指针
数组与字符串 · 数组到指针的转换
区分文件结束和流错误
格式化输入输出、流与文件 · EOF、错误标志与状态清理
取得并解引用对象地址
指针、指针运算与回调 · 指针对象、地址与解引用
设计函数返回值
函数、参数、返回值与递归 · 返回值与 void 函数
设计可独立包含的公开头文件
自动化测试、接口设计、风格与文档 · 公开头文件与 API 契约
设计可独立包含的头文件
声明、定义、头文件与预处理器 · 自包含头文件与接口契约
设计数组参数接口
数组与字符串 · 数组参数与长度契约
设计统一且可审查的清理流程
动态内存、生命周期与所有权 · 清理路径与失败回滚
设计头文件接口边界
多文件项目、编译链接与构建系统 · 公开头文件与内部头文件
设计完整输入分类
自动化测试、接口设计、风格与文档 · 正常、边界与错误路径
设计正确的重新编译边界
多文件项目、编译链接与构建系统 · 头文件依赖与增量构建
设计指针参数接口
指针、指针运算与回调 · 指针参数与输出参数
审阅静态分析结果
警告、调试、静态分析与消毒器 · 静态分析与误报处理
声明 C 对象
基本类型、对象、声明与初始化 · 对象、名字与声明
声明并初始化原子对象
信号、原子操作与标准线程 · 原子能力、对象与初始化
声明和定义函数
函数、参数、返回值与递归 · 函数声明、原型与定义
声明可修改字符串缓冲区
数组与字符串 · 字符数组与字符串字面量
声明无参数函数
函数、参数、返回值与递归 · C23 参数列表
声明只读对象
基本类型、对象、声明与初始化 · const 对象
声明只读指针接口
指针、指针运算与回调 · 指针与 const 组合
识别 C 项目源码与构建产物
多文件项目、编译链接与构建系统 · 工程目录与构建产物地图
识别不可移植的分配边界
动态内存、生命周期与所有权 · 零大小请求、对齐与接口边界
识别对象表示相关的可移植风险
C 标准演进、特性检测与可移植性 · 对象表示、字节序与对齐
识别原子对象与普通对象访问差异
限定符、对象访问与程序行为边界 · 原子对象的基本访问规则
使用比较交换并判断无锁性质
信号、原子操作与标准线程 · 比较交换、atomic_flag 与无锁查询
使用定宽整数
基本类型、对象、声明与初始化 · 定宽整数
使用显式状态转换多字节序列
字符串、内存、字符分类与本地化 · 多字节转换与 mbstate_t
使用指针区间遍历数组
指针、指针运算与回调 · 指针算术与单尾位置
缩减并记录可复现故障
警告、调试、静态分析与消毒器 · 崩溃信息与最小复现
通过中英文别名找到全部目标
类型、运算符、声明、头文件与术语总索引 · 中英文术语与章节交叉引用
统一可审阅的源码风格
自动化测试、接口设计、风格与文档 · 命名、格式与 const 使用
为 qsort 和 bsearch 编写可靠比较器
数值转换、数学、排序、查找、随机与时间 · 排序、查找与比较器契约
为故障选择诊断工具
警告、调试、静态分析与消毒器 · 诊断工具选择地图
为行为选择测试层次
自动化测试、接口设计、风格与文档 · C 测试策略地图
为原子操作选择合法内存顺序
信号、原子操作与标准线程 · 内存顺序与线程、信号栅栏
限制函数接口范围
函数、参数、返回值与递归 · 局部状态、static 函数与接口边界
写清接口的释放责任
动态内存、生命周期与所有权 · 持有、借用与所有权转移
选择分配接口并判断初始内容
动态内存、生命周期与所有权 · malloc、calloc 与初始状态
选择基本类型
基本类型、对象、声明与初始化 · 基本类型家族
选择可调试构建配置
警告、调试、静态分析与消毒器 · 调试信息、优化与可复现问题
选择时间基准并计算持续时间
数值转换、数学、排序、查找、随机与时间 · 处理器时间、时间基准与持续时间
选择文件模式并正确关闭流
格式化输入输出、流与文件 · 文件打开模式与流生命周期
选择循环结构
条件、循环与跳转 · while 与 do while
选择原子读写和读改写操作
信号、原子操作与标准线程 · 原子加载、存储与读改写
选择正常终止并注册清理函数
标准库地图、错误约定与程序控制 · 正常终止与退出处理函数
选择字符或整行输入输出接口
格式化输入输出、流与文件 · 字符、字符串与行输入输出
隐藏非公开实现细节
自动化测试、接口设计、风格与文档 · 内部实现与链接可见性
用标准宏识别翻译模式而不猜测编译器版本
C 标准演进、特性检测与可移植性 · __STDC__ 与 __STDC_VERSION__
用断言检查内部不变量
标准库地图、错误约定与程序控制 · 断言与运行期诊断
用互斥量保护共享不变量
信号、原子操作与标准线程 · 互斥量、锁定与释放
用枚举表达有限状态
结构体、联合、枚举、位域与类型别名 · 枚举类型与枚举常量
用条件编译隔离实现差异
声明、定义、头文件与预处理器 · 条件编译与特性检测
在 LLDB 或 GDB 中定位控制流
警告、调试、静态分析与消毒器 · 断点、单步与调用栈
在保留原指针的前提下调整容量
动态内存、生命周期与所有权 · realloc 与安全扩缩容
在接口报告失败后检查 errno
标准库地图、错误约定与程序控制 · errno 与错误宏
在可修改字符串上控制分词状态
字符串、内存、字符分类与本地化 · 分词与有状态接口
在谓词循环中等待共享状态
信号、原子操作与标准线程 · 条件变量、等待循环与超时
在信号处理函数中只执行允许操作
信号、原子操作与标准线程 · 信号处理函数与可访问状态
在严格模式下隔离实现扩展
C 标准演进、特性检测与可移植性 · 编译器扩展与严格一致性模式
找到名字开始可见的位置
作用域、链接与存储期 · 声明点与可见范围
找到实现必须记录的实现定义选择
C 标准演进、特性检测与可移植性 · 一致性实现与实现文档
正确处理分配失败
动态内存、生命周期与所有权 · 分配失败与空指针
正确定位 rand 和 srand 的用途
数值转换、数学、排序、查找、随机与时间 · 伪随机数、种子与安全边界
正确分类程序行为边界
限定符、对象访问与程序行为边界 · 未定义、未指定与实现定义行为
正确解释条件特性宏的定义与未定义状态
C 标准演进、特性检测与可移植性 · 条件特性与 __STDC_NO_*__
正确使用 # 与 ##
声明、定义、头文件与预处理器 · 字符串化与记号拼接
正确选择 . 与 ->
结构体、联合、枚举、位域与类型别名 · 成员访问与结构体指针
只读取判别项对应的联合体成员
结构体、联合、枚举、位域与类型别名 · 联合体与带标签变体
制定跨标准迁移和降级策略
C 标准演进、特性检测与可移植性 · C11/C17 向 C23 迁移清单
注册并触发标准信号处理函数
信号、原子操作与标准线程 · 信号模型、注册与触发
转换和格式化日历时间
数值转换、数学、排序、查找、随机与时间 · 日历时间与分解时间
组合和查询位标志
运算符、表达式、求值与类型转换 · 位运算与移位

关键词索引

__STDC__
C 标准演进、特性检测与可移植性 · __STDC__ 与 __STDC_VERSION__
__STDC_HOSTED__
C 标准演进、特性检测与可移植性 · hosted 与 freestanding
__STDC_LIB_EXT1__
字符串、内存、字符分类与本地化 · Annex K 边界检查接口
__STDC_NO_ATOMICS__
C 标准演进、特性检测与可移植性 · 条件特性与 __STDC_NO_*__
__STDC_NO_THREADS__
C 标准演进、特性检测与可移植性 · 条件特性与 __STDC_NO_*__
__STDC_VERSION__
C 标准演进、特性检测与可移植性 · __STDC__ 与 __STDC_VERSION__
__STDC_WANT_LIB_EXT1__
字符串、内存、字符分类与本地化 · Annex K 边界检查接口
__VA_ARGS__
声明、定义、头文件与预处理器 · 可变参数宏与 C23 __VA_OPT__
__VA_OPT__
声明、定义、头文件与预处理器 · 可变参数宏与 C23 __VA_OPT__
_Atomic
限定符、对象访问与程序行为边界 · 原子对象的基本访问规则
_Atomic
信号、原子操作与标准线程 · 原子能力、对象与初始化
_Exit
标准库地图、错误约定与程序控制 · 快速与立即终止
_s 接口
字符串、内存、字符分类与本地化 · Annex K 边界检查接口
->
结构体、联合、枚举、位域与类型别名 · 成员访问与结构体指针
-g
警告、调试、静态分析与消毒器 · 调试信息、优化与可复现问题
-Wall
警告、调试、静态分析与消毒器 · 严格警告与把警告当错误
-Werror
警告、调试、静态分析与消毒器 · 严格警告与把警告当错误
-Wextra
警告、调试、静态分析与消毒器 · 严格警告与把警告当错误
-Wpedantic
警告、调试、静态分析与消毒器 · 严格警告与把警告当错误
.
结构体、联合、枚举、位域与类型别名 · 成员访问与结构体指针
*
指针、指针运算与回调 · 指针对象、地址与解引用
&
指针、指针运算与回调 · 指针对象、地址与解引用
&array
数组与字符串 · 数组到指针的转换
&array
指针、指针运算与回调 · 数组与指针的关系
# 运算符
声明、定义、头文件与预处理器 · 字符串化与记号拼接
## 运算符
声明、定义、头文件与预处理器 · 字符串化与记号拼接
#if
声明、定义、头文件与预处理器 · 条件编译与特性检测
#ifdef
声明、定义、头文件与预处理器 · 条件编译与特性检测
#include
声明、定义、头文件与预处理器 · #include 与 include guard
<limits.h>
C 标准演进、特性检测与可移植性 · 翻译限制、整数范围与数据模型
<stdint.h>
C 标准演进、特性检测与可移植性 · 翻译限制、整数范围与数据模型
按值传递
函数、参数、返回值与递归 · 调用、实参与按值传递
按值传递
指针、指针运算与回调 · 指针参数与输出参数
版本猜测
C 标准演进、特性检测与可移植性 · 常见陷阱
版本差异
警告、调试、静态分析与消毒器 · 工具边界与常见诊断陷阱
包含指令
类型、运算符、声明、头文件与术语总索引 · 预处理、宏与条件编译
保留标识符
声明、定义、头文件与预处理器 · 重复定义、宏污染与保留标识符
保留标识符
C 标准演进、特性检测与可移植性 · 头文件和库接口的可移植边界
崩溃日志
警告、调试、静态分析与消毒器 · 崩溃信息与最小复现
比较器
数值转换、数学、排序、查找、随机与时间 · 排序、查找与比较器契约
比较运算
运算符、表达式、求值与类型转换 · 比较、逻辑与条件运算
边界遍历
数组与字符串 · 遍历、哨兵与边界
边界检查
数组与字符串 · 遍历、哨兵与边界
边界值
自动化测试、接口设计、风格与文档 · 正常、边界与错误路径
编译
入门导览与第一个程序 · 编译与运行
编译
多文件项目、编译链接与构建系统 · 预处理、编译、汇编与链接
编译错误
警告、调试、静态分析与消毒器 · 编译期与链接期诊断
编译器
入门导览与第一个程序 · 工具链与命令行
编译器扩展
C 标准演进、特性检测与可移植性 · 编译器扩展与严格一致性模式
编译器诊断
警告、调试、静态分析与消毒器 · 诊断工具选择地图
编译选项
多文件项目、编译链接与构建系统 · Debug、Release 与构建配置
变量
基本类型、对象、声明与初始化 · 对象、名字与声明
变体
结构体、联合、枚举、位域与类型别名 · 联合体与带标签变体
变长修改类型
数组与字符串 · VLA 与变长修改类型
标量
条件、循环与跳转 · 条件表达式与真假规则
标签
作用域、链接与存储期 · 标识符的名字空间
标签名字空间
作用域、链接与存储期 · 标识符的名字空间
标签命名空间
结构体、联合、枚举、位域与类型别名 · typedef 与类型别名
标识符
基本类型、对象、声明与初始化 · 对象、名字与声明
标识符链接
作用域、链接与存储期 · 无链接、内部链接与外部链接
标识符名字空间
作用域、链接与存储期 · 标识符的名字空间
标准基线
C 标准演进、特性检测与可移植性 · C11、C17、C23 基线地图
标准库
标准库地图、错误约定与程序控制 · 标准库头文件与任务地图
标准库
类型、运算符、声明、头文件与术语总索引 · 标准库接口
标准头文件
标准库地图、错误约定与程序控制 · 标准库头文件与任务地图
标准头文件
C 标准演进、特性检测与可移植性 · 头文件和库接口的可移植边界
标准头文件
类型、运算符、声明、头文件与术语总索引 · 标准头文件
标准信号
信号、原子操作与标准线程 · 信号模型、注册与触发
表达式
运算符、表达式、求值与类型转换 · 表达式、操作数与结果类型
表达式
类型、运算符、声明、头文件与术语总索引 · 运算符与表达式类别
表达式求值
警告、调试、静态分析与消毒器 · 变量、表达式与数据流检查
表达式陷阱
运算符、表达式、求值与类型转换 · 常见陷阱
别名
类型、运算符、声明、头文件与术语总索引 · 中英文术语与章节交叉引用
别名违规
限定符、对象访问与程序行为边界 · 限定符、别名与对象访问陷阱
别名约定
限定符、对象访问与程序行为边界 · restrict 的访问契约
并发
类型、运算符、声明、头文件与术语总索引 · 行为、诊断、并发与可移植性术语
并发接口
信号、原子操作与标准线程 · 信号、原子与线程接口地图
不完整类型
结构体、联合、枚举、位域与类型别名 · 结构体类型、标签与成员
不完整数组
结构体、联合、枚举、位域与类型别名 · 柔性数组成员
参数 sizeof
数组与字符串 · 常见陷阱
参数调整
数组与字符串 · 数组参数与长度契约
参数列表
函数、参数、返回值与递归 · C23 参数列表
参数声明
作用域、链接与存储期 · 声明点与可见范围
参数说明
自动化测试、接口设计、风格与文档 · API 注释与使用示例
参数误解
函数、参数、返回值与递归 · 常见陷阱
操作数
运算符、表达式、求值与类型转换 · 表达式、操作数与结果类型
测试报告
自动化测试、接口设计、风格与文档 · 标准 C 最小测试夹具
测试范围
自动化测试、接口设计、风格与文档 · C 测试策略地图
测试夹具
自动化测试、接口设计、风格与文档 · 标准 C 最小测试夹具
测试框架
自动化测试、接口设计、风格与文档 · 测试框架与 CI 入口
查询范围
类型、运算符、声明、头文件与术语总索引 · 索引范围与使用方法
常量对象
基本类型、对象、声明与初始化 · const 对象
常量指针
指针、指针运算与回调 · 指针与 const 组合
常用算术转换
运算符、表达式、求值与类型转换 · 算术运算与常用类型转换
陈旧 errno
标准库地图、错误约定与程序控制 · 错误处理与程序控制陷阱
陈旧 errno
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间陷阱
陈旧目标文件
多文件项目、编译链接与构建系统 · 常见构建陷阱
成员访问
结构体、联合、枚举、位域与类型别名 · 成员访问与结构体指针
成员名字空间
作用域、链接与存储期 · 标识符的名字空间
成员声明
结构体、联合、枚举、位域与类型别名 · 结构体类型、标签与成员
成员顺序
结构体、联合、枚举、位域与类型别名 · 成员顺序、填充、对齐与偏移
乘法溢出
动态内存、生命周期与所有权 · 分配大小、元素数量与溢出
初始化
基本类型、对象、声明与初始化 · 初始化
初始化器
基本类型、对象、声明与初始化 · 初始化
初始化器
作用域、链接与存储期 · 声明点与可见范围
初值
基本类型、对象、声明与初始化 · 初始化
除零
运算符、表达式、求值与类型转换 · 常见陷阱
处理函数限制
信号、原子操作与标准线程 · 信号处理函数与可访问状态
存储期
作用域、链接与存储期 · 作用域、链接、存储期与生存期
存储期
类型、运算符、声明、头文件与术语总索引 · 限定符、存储期与链接
错误 extern
作用域、链接与存储期 · 遮蔽、链接冲突与悬空对象
错误处理
动态内存、生命周期与所有权 · 分配失败与空指针
错误返回
标准库地图、错误约定与程序控制 · 返回值、空指针与哨兵值
错误路径
自动化测试、接口设计、风格与文档 · 正常、边界与错误路径
错误清理顺序
标准库地图、错误约定与程序控制 · 错误处理与程序控制陷阱
错误说明
自动化测试、接口设计、风格与文档 · API 注释与使用示例
代码格式
自动化测试、接口设计、风格与文档 · 命名、格式与 const 使用
单步
警告、调试、静态分析与消毒器 · 断点、单步与调用栈
单尾位置
指针、指针运算与回调 · 指针算术与单尾位置
单一出口
动态内存、生命周期与所有权 · 清理路径与失败回滚
单元测试
自动化测试、接口设计、风格与文档 · C 测试策略地图
单元测试
自动化测试、接口设计、风格与文档 · 单元、集成与命令行测试
当前存储成员
结构体、联合、枚举、位域与类型别名 · 联合体与带标签变体
地址
指针、指针运算与回调 · 指针对象、地址与解引用
地址实参
指针、指针运算与回调 · 指针参数与输出参数
等价类
自动化测试、接口设计、风格与文档 · 正常、边界与错误路径
递归
函数、参数、返回值与递归 · 递归、基例与终止条件
递归
作用域、链接与存储期 · 递归、自动状态与静态状态
递归错误
函数、参数、返回值与递归 · 常见陷阱
调试器
警告、调试、静态分析与消毒器 · 诊断工具选择地图
调用前置条件
指针、指针运算与回调 · 指针参数与输出参数
调用栈
警告、调试、静态分析与消毒器 · 断点、单步与调用栈
迭代表达式
条件、循环与跳转 · for 循环
定宽整数
基本类型、对象、声明与初始化 · 定宽整数
定义
声明、定义、头文件与预处理器 · 声明与定义
定义
多文件项目、编译链接与构建系统 · 翻译单元、声明与定义
定义
类型、运算符、声明、头文件与术语总索引 · 声明、声明符与类型名
丢弃限定符
限定符、对象访问与程序行为边界 · 限定符、别名与对象访问陷阱
丢失原指针
动态内存、生命周期与所有权 · 常见陷阱
动态存储期
动态内存、生命周期与所有权 · 动态存储与分配对象的生存期
读改写
信号、原子操作与标准线程 · 原子加载、存储与读改写
短路求值
运算符、表达式、求值与类型转换 · 比较、逻辑与条件运算
断点
警告、调试、静态分析与消毒器 · 断点、单步与调用栈
断言
自动化测试、接口设计、风格与文档 · 标准 C 最小测试夹具
堆栈跟踪
警告、调试、静态分析与消毒器 · AddressSanitizer 与内存错误
对齐
运算符、表达式、求值与类型转换 · 显式转换、大小与对齐
对齐
结构体、联合、枚举、位域与类型别名 · 成员顺序、填充、对齐与偏移
对齐
限定符、对象访问与程序行为边界 · 可移植性边界与实现假设
对齐
C 标准演进、特性检测与可移植性 · 对象表示、字节序与对齐
对齐要求
动态内存、生命周期与所有权 · 零大小请求、对齐与接口边界
对象
基本类型、对象、声明与初始化 · 对象、名字与声明
对象表示
限定符、对象访问与程序行为边界 · 对象表示、值表示与填充字节
对象表示
C 标准演进、特性检测与可移植性 · 对象表示、字节序与对齐
对象定义
声明、定义、头文件与预处理器 · 声明与定义
对象复制
限定符、对象访问与程序行为边界 · 字符类型访问与 memcpy
对象生存期
动态内存、生命周期与所有权 · 动态存储与分配对象的生存期
对象式宏
声明、定义、头文件与预处理器 · 对象式宏与函数式宏
对象重叠
字符串、内存、字符分类与本地化 · 字符串、内存与本地化陷阱
多次声明
作用域、链接与存储期 · 同一实体的多次声明
多目标链接
类型、运算符、声明、头文件与术语总索引 · 中英文术语与章节交叉引用
多维数组
数组与字符串 · 多维数组与行优先布局
多文件程序
声明、定义、头文件与预处理器 · 翻译单元与多文件程序
二进制布局假设
结构体、联合、枚举、位域与类型别名 · 常见陷阱
二进制流
格式化输入输出、流与文件 · 文件打开模式与流生命周期
二进制数据
格式化输入输出、流与文件 · fread、fwrite 与二进制块读写
翻译单元
声明、定义、头文件与预处理器 · 翻译单元与多文件程序
翻译单元
多文件项目、编译链接与构建系统 · 翻译单元、声明与定义
翻译模式
C 标准演进、特性检测与可移植性 · __STDC__ 与 __STDC_VERSION__
翻译限制
C 标准演进、特性检测与可移植性 · 翻译限制、整数范围与数据模型
返回值
函数、参数、返回值与递归 · 返回值与 void 函数
返回值
标准库地图、错误约定与程序控制 · 返回值、空指针与哨兵值
返回值检查
动态内存、生命周期与所有权 · 分配失败与空指针
范围
指针、指针运算与回调 · 指针算术与单尾位置
非法算术
指针、指针运算与回调 · 常见陷阱
分隔符
字符串、内存、字符分类与本地化 · 分词与有状态接口
分配大小
动态内存、生命周期与所有权 · 分配大小、元素数量与溢出
分配对象
动态内存、生命周期与所有权 · 动态存储与分配对象的生存期
分配失败
动态内存、生命周期与所有权 · 分配失败与空指针
分支
条件、循环与跳转 · if 与 else
浮点错误
数值转换、数学、排序、查找、随机与时间 · 实数数学、分类与错误报告
浮点类型
基本类型、对象、声明与初始化 · 基本类型家族
浮点异常
数值转换、数学、排序、查找、随机与时间 · 浮点环境、舍入与异常标志
符号
多文件项目、编译链接与构建系统 · 目标文件、符号与链接诊断
符号可见性
自动化测试、接口设计、风格与文档 · 内部实现与链接可见性
复合赋值
运算符、表达式、求值与类型转换 · 赋值、自增自减与复合赋值
复合类型
作用域、链接与存储期 · 同一实体的多次声明
复合类型
类型、运算符、声明、头文件与术语总索引 · 基本类型、派生类型与复合类型
复数
数值转换、数学、排序、查找、随机与时间 · 复数与类型泛化数学
副作用
运算符、表达式、求值与类型转换 · 求值顺序与副作用
副作用
声明、定义、头文件与预处理器 · 宏展开、括号与副作用
赋值
运算符、表达式、求值与类型转换 · 赋值、自增自减与复合赋值
覆盖率
自动化测试、接口设计、风格与文档 · 测试框架与 CI 入口
格式不匹配
格式化输入输出、流与文件 · 流与文件操作陷阱
格式说明符
基本类型、对象、声明与初始化 · 常见陷阱
格式字符串
格式化输入输出、流与文件 · printf 家族与格式化输出
隔离
自动化测试、接口设计、风格与文档 · 确定性、隔离与清理
工程目录
多文件项目、编译链接与构建系统 · 工程目录与构建产物地图
工具缺失
警告、调试、静态分析与消毒器 · 工具边界与常见诊断陷阱
公开头文件
多文件项目、编译链接与构建系统 · 公开头文件与内部头文件
共享状态
作用域、链接与存储期 · 递归、自动状态与静态状态
共享状态
自动化测试、接口设计、风格与文档 · 常见测试与接口陷阱
构建目录
多文件项目、编译链接与构建系统 · 工程目录与构建产物地图
固定底层类型
结构体、联合、枚举、位域与类型别名 · 枚举类型与枚举常量
固定输入
警告、调试、静态分析与消毒器 · 崩溃信息与最小复现
固定数据模型
C 标准演进、特性检测与可移植性 · 常见陷阱
贯穿
条件、循环与跳转 · switch、case 与 default
归档
多文件项目、编译链接与构建系统 · 静态库与归档工具
规则配置
警告、调试、静态分析与消毒器 · 静态分析与误报处理
过早销毁
信号、原子操作与标准线程 · 数据竞争、死锁与生命周期陷阱
函数调用
函数、参数、返回值与递归 · 调用、实参与按值传递
函数定义
函数、参数、返回值与递归 · 函数声明、原型与定义
函数定义
声明、定义、头文件与预处理器 · 声明与定义
函数接口
类型、运算符、声明、头文件与术语总索引 · 标准库接口
函数声明
函数、参数、返回值与递归 · 函数声明、原型与定义
函数式宏
声明、定义、头文件与预处理器 · 对象式宏与函数式宏
函数陷阱
函数、参数、返回值与递归 · 常见陷阱
函数原型
函数、参数、返回值与递归 · 函数声明、原型与定义
函数原型作用域
作用域、链接与存储期 · 文件、块、函数与函数原型作用域
函数指针
指针、指针运算与回调 · 函数指针与类型明确的回调
函数作用域
作用域、链接与存储期 · 文件、块、函数与函数原型作用域
类型、运算符、声明、头文件与术语总索引 · 预处理、宏与条件编译
宏参数
声明、定义、头文件与预处理器 · 对象式宏与函数式宏
宏接口
类型、运算符、声明、头文件与术语总索引 · 标准库接口
宏污染
声明、定义、头文件与预处理器 · 重复定义、宏污染与保留标识符
宏展开
声明、定义、头文件与预处理器 · 宏展开、括号与副作用
宏自洽
C 标准演进、特性检测与可移植性 · 能力探测程序及输出解释
后测循环
条件、循环与跳转 · while 与 do while
后置条件
自动化测试、接口设计、风格与文档 · 公开头文件与 API 契约
忽略返回值
标准库地图、错误约定与程序控制 · 错误处理与程序控制陷阱
互斥量
信号、原子操作与标准线程 · 互斥量、锁定与释放
环境变量
标准库地图、错误约定与程序控制 · 命令行参数与环境查询
环境记录
警告、调试、静态分析与消毒器 · 崩溃信息与最小复现
缓冲模式
格式化输入输出、流与文件 · 缓冲、刷新与交互式输出
缓冲区容量
字符串、内存、字符分类与本地化 · 空字符结尾字符串与数组边界
缓冲区越界
字符串、内存、字符分类与本地化 · 字符串、内存与本地化陷阱
缓冲区长度
自动化测试、接口设计、风格与文档 · 状态码、所有权与缓冲区接口
回调
指针、指针运算与回调 · 函数指针与类型明确的回调
汇编
多文件项目、编译链接与构建系统 · 预处理、编译、汇编与链接
基本类型
基本类型、对象、声明与初始化 · 基本类型家族
基本类型
类型、运算符、声明、头文件与术语总索引 · 基本类型、派生类型与复合类型
基例
函数、参数、返回值与递归 · 递归、基例与终止条件
基于对象
限定符、对象访问与程序行为边界 · restrict 的访问契约
集成测试
自动化测试、接口设计、风格与文档 · C 测试策略地图
集成测试
自动化测试、接口设计、风格与文档 · 单元、集成与命令行测试
计数循环
条件、循环与跳转 · for 循环
记号拼接
声明、定义、头文件与预处理器 · 字符串化与记号拼接
兼容类型
作用域、链接与存储期 · 同一实体的多次声明
兼容类型
限定符、对象访问与程序行为边界 · 有效类型、兼容类型与别名访问
兼容指针
指针、指针运算与回调 · 指针类型与转换
监视点
警告、调试、静态分析与消毒器 · 变量、表达式与数据流检查
降级路径
C 标准演进、特性检测与可移植性 · C11/C17 向 C23 迁移清单
交叉引用
类型、运算符、声明、头文件与术语总索引 · 中英文术语与章节交叉引用
交互式输出
格式化输入输出、流与文件 · 缓冲、刷新与交互式输出
接口边界
动态内存、生命周期与所有权 · 零大小请求、对齐与接口边界
接口边界
多文件项目、编译链接与构建系统 · 公开头文件与内部头文件
接口契约
标准库地图、错误约定与程序控制 · 接口契约、前置条件与失败约定
接口声明
声明、定义、头文件与预处理器 · 自包含头文件与接口契约
结构化输出
C 标准演进、特性检测与可移植性 · 能力探测程序及输出解释
结构体标签
结构体、联合、枚举、位域与类型别名 · 结构体类型、标签与成员
结构体赋值
结构体、联合、枚举、位域与类型别名 · 聚合初始化、指定初始化器与复制
结构体类型
结构体、联合、枚举、位域与类型别名 · 结构体类型、标签与成员
结构体指针
结构体、联合、枚举、位域与类型别名 · 成员访问与结构体指针
结果类型
运算符、表达式、求值与类型转换 · 表达式、操作数与结果类型
结合性
运算符、表达式、求值与类型转换 · 优先级、结合性与括号
结合性
类型、运算符、声明、头文件与术语总索引 · 运算符与表达式类别
借用
自动化测试、接口设计、风格与文档 · 状态码、所有权与缓冲区接口
借用指针
动态内存、生命周期与所有权 · 持有、借用与所有权转移
进程状态
自动化测试、接口设计、风格与文档 · 单元、集成与命令行测试
静态存储期
作用域、链接与存储期 · 自动、静态、线程与已分配存储期
静态分析
警告、调试、静态分析与消毒器 · 诊断工具选择地图
静态分析
警告、调试、静态分析与消毒器 · 静态分析与误报处理
静态局部对象
作用域、链接与存储期 · 递归、自动状态与静态状态
静态库
多文件项目、编译链接与构建系统 · 静态库与归档工具
局部变量
警告、调试、静态分析与消毒器 · 变量、表达式与数据流检查
局部对象
函数、参数、返回值与递归 · 局部状态、static 函数与接口边界
矩阵
数组与字符串 · 多维数组与行优先布局
聚合初始化
结构体、联合、枚举、位域与类型别名 · 聚合初始化、指定初始化器与复制
可变参数
函数、参数、返回值与递归 · 可变参数函数
可变参数宏
声明、定义、头文件与预处理器 · 可变参数宏与 C23 __VA_OPT__
可调用接口
指针、指针运算与回调 · 函数指针与类型明确的回调
可复现构建
警告、调试、静态分析与消毒器 · 调试信息、优化与可复现问题
可观察行为
限定符、对象访问与程序行为边界 · volatile 与可观察访问
可见范围
作用域、链接与存储期 · 声明点与可见范围
可修改左值
限定符、对象访问与程序行为边界 · const 与可修改左值
可选支持
C 标准演进、特性检测与可移植性 · 条件特性与 __STDC_NO_*__
可移植性
限定符、对象访问与程序行为边界 · 可移植性边界与实现假设
可移植性
类型、运算符、声明、头文件与术语总索引 · 行为、诊断、并发与可移植性术语
可执行文件
入门导览与第一个程序 · 编译与运行
空参数
声明、定义、头文件与预处理器 · 可变参数宏与 C23 __VA_OPT__
空参数列表
函数、参数、返回值与递归 · C23 参数列表
空指针
指针、指针运算与回调 · C23 空指针
空指针
动态内存、生命周期与所有权 · 分配失败与空指针
空指针
标准库地图、错误约定与程序控制 · 返回值、空指针与哨兵值
空指针解引用
指针、指针运算与回调 · 常见陷阱
空字符
数组与字符串 · 字符数组与字符串字面量
空字符
字符串、内存、字符分类与本地化 · 空字符结尾字符串与数组边界
控制流陷阱
条件、循环与跳转 · 嵌套控制流与常见陷阱
库函数
标准库地图、错误约定与程序控制 · 标准库头文件与任务地图
库宏
标准库地图、错误约定与程序控制 · 标准库头文件与任务地图
库兼容
C 标准演进、特性检测与可移植性 · C11/C17 向 C23 迁移清单
库接口
C 标准演进、特性检测与可移植性 · 头文件和库接口的可移植边界
块作用域
作用域、链接与存储期 · 文件、块、函数与函数原型作用域
快速终止
标准库地图、错误约定与程序控制 · 快速与立即终止
扩容
动态内存、生命周期与所有权 · realloc 与安全扩缩容
扩展依赖
C 标准演进、特性检测与可移植性 · 常见陷阱
括号
运算符、表达式、求值与类型转换 · 优先级、结合性与括号
括号
声明、定义、头文件与预处理器 · 宏展开、括号与副作用
类型别名
结构体、联合、枚举、位域与类型别名 · typedef 与类型别名
类型大小
基本类型、对象、声明与初始化 · 大小与范围
类型泛化
数值转换、数学、排序、查找、随机与时间 · 复数与类型泛化数学
类型兼容
类型、运算符、声明、头文件与术语总索引 · 基本类型、派生类型与复合类型
类型接口
类型、运算符、声明、头文件与术语总索引 · 标准库接口
类型名
类型、运算符、声明、头文件与术语总索引 · 声明、声明符与类型名
类型限定符
限定符、对象访问与程序行为边界 · 限定类型与限定转换
类型限定符
类型、运算符、声明、头文件与术语总索引 · 限定符、存储期与链接
类型陷阱
基本类型、对象、声明与初始化 · 常见陷阱
联合体
结构体、联合、枚举、位域与类型别名 · 联合体与带标签变体
联合体误读
结构体、联合、枚举、位域与类型别名 · 常见陷阱
链接
作用域、链接与存储期 · 作用域、链接、存储期与生存期
链接
多文件项目、编译链接与构建系统 · 预处理、编译、汇编与链接
链接
类型、运算符、声明、头文件与术语总索引 · 限定符、存储期与链接
链接冲突
作用域、链接与存储期 · 遮蔽、链接冲突与悬空对象
链接错误
警告、调试、静态分析与消毒器 · 编译期与链接期诊断
链接顺序
多文件项目、编译链接与构建系统 · 静态库与归档工具
链接顺序
多文件项目、编译链接与构建系统 · 常见构建陷阱
列数
数组与字符串 · 多维数组与行优先布局
临时目录
自动化测试、接口设计、风格与文档 · 确定性、隔离与清理
临时文件
格式化输入输出、流与文件 · 文件重命名、删除与临时文件
临时指针
动态内存、生命周期与所有权 · realloc 与安全扩缩容
零初始化
声明、定义、头文件与预处理器 · 外部定义与暂定定义
零大小分配
动态内存、生命周期与所有权 · 零大小请求、对齐与接口边界
零填充
数组与字符串 · 数组初始化、长度推断与 sizeof
零填充
动态内存、生命周期与所有权 · malloc、calloc 与初始状态
零与非零
条件、循环与跳转 · 条件表达式与真假规则
逻辑运算
运算符、表达式、求值与类型转换 · 比较、逻辑与条件运算
枚举常量
结构体、联合、枚举、位域与类型别名 · 枚举类型与枚举常量
枚举类型
结构体、联合、枚举、位域与类型别名 · 枚举类型与枚举常量
名字遮蔽
作用域、链接与存储期 · 遮蔽、链接冲突与悬空对象
命名规则
自动化测试、接口设计、风格与文档 · 命名、格式与 const 使用
目标
多文件项目、编译链接与构建系统 · Make 目标、前置条件与配方
目标文件
多文件项目、编译链接与构建系统 · 目标文件、符号与链接诊断
内部链接
函数、参数、返回值与递归 · 局部状态、static 函数与接口边界
内部链接
作用域、链接与存储期 · 无链接、内部链接与外部链接
内部链接
作用域、链接与存储期 · static 与 extern
内部链接
自动化测试、接口设计、风格与文档 · 内部实现与链接可见性
内部头文件
多文件项目、编译链接与构建系统 · 公开头文件与内部头文件
内部状态
字符串、内存、字符分类与本地化 · 分词与有状态接口
内存检查
警告、调试、静态分析与消毒器 · 变量、表达式与数据流检查
内存泄漏
动态内存、生命周期与所有权 · 常见陷阱
能力矩阵
C 标准演进、特性检测与可移植性 · 能力探测程序及输出解释
派生类型
类型、运算符、声明、头文件与术语总索引 · 基本类型、派生类型与复合类型
派生视图
类型、运算符、声明、头文件与术语总索引 · 索引范围与使用方法
判别项
结构体、联合、枚举、位域与类型别名 · 联合体与带标签变体
配方
多文件项目、编译链接与构建系统 · Make 目标、前置条件与配方
迁移清单
C 标准演进、特性检测与可移植性 · C11/C17 向 C23 迁移清单
前测循环
条件、循环与跳转 · while 与 do while
前置条件
数组与字符串 · 数组参数与长度契约
前置条件
标准库地图、错误约定与程序控制 · 接口契约、前置条件与失败约定
前置条件
多文件项目、编译链接与构建系统 · Make 目标、前置条件与配方
前置条件
自动化测试、接口设计、风格与文档 · 公开头文件与 API 契约
浅复制
结构体、联合、枚举、位域与类型别名 · 聚合初始化、指定初始化器与复制
嵌套循环
条件、循环与跳转 · 嵌套控制流与常见陷阱
清理路径
动态内存、生命周期与所有权 · 清理路径与失败回滚
求值顺序
运算符、表达式、求值与类型转换 · 求值顺序与副作用
区间长度
指针、指针运算与回调 · 指针相减与比较
全局状态
字符串、内存、字符分类与本地化 · locale 类别与 setlocale
全量重建
多文件项目、编译链接与构建系统 · 常见构建陷阱
缺少空终止
字符串、内存、字符分类与本地化 · 字符串、内存与本地化陷阱
缺少终止符
数组与字符串 · 常见陷阱
缺失依赖
多文件项目、编译链接与构建系统 · 常见构建陷阱
确定性
自动化测试、接口设计、风格与文档 · 确定性、隔离与清理
柔性数组成员
结构体、联合、枚举、位域与类型别名 · 柔性数组成员
入门路线
入门导览与第一个程序 · 后续阅读路线
哨兵值
标准库地图、错误约定与程序控制 · 返回值、空指针与哨兵值
舍入方向
数值转换、数学、排序、查找、随机与时间 · 浮点环境、舍入与异常标志
生存期
作用域、链接与存储期 · 作用域、链接、存储期与生存期
生存期结束
动态内存、生命周期与所有权 · free、生存期结束与悬空指针
声明
基本类型、对象、声明与初始化 · 对象、名字与声明
声明
声明、定义、头文件与预处理器 · 声明与定义
声明
多文件项目、编译链接与构建系统 · 翻译单元、声明与定义
声明
类型、运算符、声明、头文件与术语总索引 · 声明、声明符与类型名
声明点
作用域、链接与存储期 · 声明点与可见范围
声明符
类型、运算符、声明、头文件与术语总索引 · 声明、声明符与类型名
声明可读性
结构体、联合、枚举、位域与类型别名 · typedef 与类型别名
声明可见性
类型、运算符、声明、头文件与术语总索引 · 标准头文件
失败回滚
动态内存、生命周期与所有权 · 清理路径与失败回滚
失败计数
自动化测试、接口设计、风格与文档 · 标准 C 最小测试夹具
失败约定
标准库地图、错误约定与程序控制 · 接口契约、前置条件与失败约定
时区误解
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间陷阱
实参
函数、参数、返回值与递归 · 调用、实参与按值传递
实现定义
C 标准演进、特性检测与可移植性 · 一致性实现与实现文档
实现定义布局
结构体、联合、枚举、位域与类型别名 · 位域、宽度与实现边界
实现定义行为
限定符、对象访问与程序行为边界 · 未定义、未指定与实现定义行为
实现宏
C 标准演进、特性检测与可移植性 · 编译器扩展与严格一致性模式
实现假设
限定符、对象访问与程序行为边界 · 可移植性边界与实现假设
实现耦合
自动化测试、接口设计、风格与文档 · 常见测试与接口陷阱
实现文档
C 标准演进、特性检测与可移植性 · 一致性实现与实现文档
使用示例
自动化测试、接口设计、风格与文档 · API 注释与使用示例
释放后使用
动态内存、生命周期与所有权 · 常见陷阱
释放后使用
警告、调试、静态分析与消毒器 · AddressSanitizer 与内存错误
释放责任
动态内存、生命周期与所有权 · 持有、借用与所有权转移
首元素指针
数组与字符串 · 数组到指针的转换
首元素指针
指针、指针运算与回调 · 数组与指针的关系
输出参数
指针、指针运算与回调 · 指针参数与输出参数
输出目录
多文件项目、编译链接与构建系统 · Debug、Release 与构建配置
数据竞争
限定符、对象访问与程序行为边界 · 原子对象的基本访问规则
数据竞争
信号、原子操作与标准线程 · 数据竞争、死锁与生命周期陷阱
数据流分析
警告、调试、静态分析与消毒器 · 静态分析与误报处理
数据模型
C 标准演进、特性检测与可移植性 · 翻译限制、整数范围与数据模型
数值范围
基本类型、对象、声明与初始化 · 大小与范围
数组边界
数组与字符串 · 数组类型、元素与有效下标
数组初始化器
数组与字符串 · 数组初始化、长度推断与 sizeof
数组类型
数组与字符串 · 数组类型、元素与有效下标
数组陷阱
数组与字符串 · 常见陷阱
数组元素
数组与字符串 · 数组类型、元素与有效下标
数组长度
数组与字符串 · 数组初始化、长度推断与 sizeof
数组转换
数组与字符串 · 数组到指针的转换
数组转换
指针、指针运算与回调 · 数组与指针的关系
私有声明
自动化测试、接口设计、风格与文档 · 内部实现与链接可见性
死锁
信号、原子操作与标准线程 · 数据竞争、死锁与生命周期陷阱
宿主实现
C 标准演进、特性检测与可移植性 · hosted 与 freestanding
随机误用
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间陷阱
缩容
动态内存、生命周期与所有权 · realloc 与安全扩缩容
所有权
自动化测试、接口设计、风格与文档 · 状态码、所有权与缓冲区接口
所有权约定
动态内存、生命周期与所有权 · 持有、借用与所有权转移
所有权转移
动态内存、生命周期与所有权 · 持有、借用与所有权转移
特性检测
声明、定义、头文件与预处理器 · 条件编译与特性检测
替换列表
声明、定义、头文件与预处理器 · 对象式宏与函数式宏
填充
结构体、联合、枚举、位域与类型别名 · 成员顺序、填充、对齐与偏移
填充位
C 标准演进、特性检测与可移植性 · 对象表示、字节序与对齐
填充字节
限定符、对象访问与程序行为边界 · 对象表示、值表示与填充字节
条件包含
声明、定义、头文件与预处理器 · #include 与 include guard
条件编译
声明、定义、头文件与预处理器 · 条件编译与特性检测
条件编译
类型、运算符、声明、头文件与术语总索引 · 预处理、宏与条件编译
条件表达式
条件、循环与跳转 · 条件表达式与真假规则
条件分支
条件、循环与跳转 · if 与 else
条件特性
信号、原子操作与标准线程 · 原子能力、对象与初始化
条件特性
C 标准演进、特性检测与可移植性 · 条件特性与 __STDC_NO_*__
条件头文件
类型、运算符、声明、头文件与术语总索引 · 标准头文件
条件运算符
运算符、表达式、求值与类型转换 · 比较、逻辑与条件运算
条件支持
C 标准演进、特性检测与可移植性 · 头文件和库接口的可移植边界
跳转语句
条件、循环与跳转 · break、continue 与 goto
同一实体
作用域、链接与存储期 · 同一实体的多次声明
同一数组
指针、指针运算与回调 · 指针算术与单尾位置
同一数组
指针、指针运算与回调 · 指针相减与比较
头文件
声明、定义、头文件与预处理器 · 自包含头文件与接口契约
头文件
多文件项目、编译链接与构建系统 · 工程目录与构建产物地图
头文件地图
类型、运算符、声明、头文件与术语总索引 · 标准头文件
头文件定义
声明、定义、头文件与预处理器 · 重复定义、宏污染与保留标识符
头文件依赖
多文件项目、编译链接与构建系统 · 头文件依赖与增量构建
外部定义
声明、定义、头文件与预处理器 · 外部定义与暂定定义
外部定义
多文件项目、编译链接与构建系统 · 翻译单元、声明与定义
外部链接
作用域、链接与存储期 · 无链接、内部链接与外部链接
外部声明
作用域、链接与存储期 · static 与 extern
完整类型
声明、定义、头文件与预处理器 · 自包含头文件与接口契约
伪能力检测
C 标准演进、特性检测与可移植性 · 常见陷阱
伪随机
数值转换、数学、排序、查找、随机与时间 · 伪随机数、种子与安全边界
尾部存储
结构体、联合、枚举、位域与类型别名 · 柔性数组成员
未初始化存储
动态内存、生命周期与所有权 · malloc、calloc 与初始状态
未初始化读取
基本类型、对象、声明与初始化 · 常见陷阱
未初始化填充
结构体、联合、枚举、位域与类型别名 · 常见陷阱
未初始化指针
指针、指针运算与回调 · 常见陷阱
未定义行为
限定符、对象访问与程序行为边界 · restrict 的访问契约
未定义行为
限定符、对象访问与程序行为边界 · 未定义、未指定与实现定义行为
未定义行为
标准库地图、错误约定与程序控制 · 接口契约、前置条件与失败约定
未定义行为
警告、调试、静态分析与消毒器 · UndefinedBehaviorSanitizer 与行为边界
未定义行为
类型、运算符、声明、头文件与术语总索引 · 行为、诊断、并发与可移植性术语
未定义引用
多文件项目、编译链接与构建系统 · 目标文件、符号与链接诊断
未检查 scanf
格式化输入输出、流与文件 · 流与文件操作陷阱
未排序
运算符、表达式、求值与类型转换 · 求值顺序与副作用
未刷新流
标准库地图、错误约定与程序控制 · 错误处理与程序控制陷阱
未指定行为
限定符、对象访问与程序行为边界 · 未定义、未指定与实现定义行为
位掩码
运算符、表达式、求值与类型转换 · 位运算与移位
位域
结构体、联合、枚举、位域与类型别名 · 位域、宽度与实现边界
位域地址
结构体、联合、枚举、位域与类型别名 · 常见陷阱
位域宽度
结构体、联合、枚举、位域与类型别名 · 位域、宽度与实现边界
位运算
运算符、表达式、求值与类型转换 · 位运算与移位
文本二进制差异
格式化输入输出、流与文件 · 流与文件操作陷阱
文本流
格式化输入输出、流与文件 · 文件打开模式与流生命周期
文件作用域
作用域、链接与存储期 · 文件、块、函数与函数原型作用域
文件作用域
声明、定义、头文件与预处理器 · 外部定义与暂定定义
稳定链接
类型、运算符、声明、头文件与术语总索引 · 索引范围与使用方法
无符号位域
结构体、联合、枚举、位域与类型别名 · 位域、宽度与实现边界
无链接
作用域、链接与存储期 · 无链接、内部链接与外部链接
无限循环
条件、循环与跳转 · 嵌套控制流与常见陷阱
无效指针
动态内存、生命周期与所有权 · free、生存期结束与悬空指针
误报
警告、调试、静态分析与消毒器 · 静态分析与误报处理
下标
数组与字符串 · 数组类型、元素与有效下标
显式长度
数组与字符串 · 数组参数与长度契约
显式长度
数组与字符串 · 遍历、哨兵与边界
显式转换
运算符、表达式、求值与类型转换 · 显式转换、大小与对齐
显式转换
指针、指针运算与回调 · 指针类型与转换
线程存储期
作用域、链接与存储期 · 自动、静态、线程与已分配存储期
线程存储期
类型、运算符、声明、头文件与术语总索引 · 限定符、存储期与链接
限定转换
指针、指针运算与回调 · 指针类型与转换
限定转换
指针、指针运算与回调 · 指针与 const 组合
限定转换
限定符、对象访问与程序行为边界 · const 与可修改左值
消毒器
警告、调试、静态分析与消毒器 · 诊断工具选择地图
消毒器盲区
警告、调试、静态分析与消毒器 · 工具边界与常见诊断陷阱
写访问
限定符、对象访问与程序行为边界 · const 与可修改左值
信号处理
限定符、对象访问与程序行为边界 · volatile 与可观察访问
行末花括号
自动化测试、接口设计、风格与文档 · 命名、格式与 const 使用
行为测试
自动化测试、接口设计、风格与文档 · C 测试策略地图
行优先
数组与字符串 · 多维数组与行优先布局
修改输入
字符串、内存、字符分类与本地化 · 分词与有状态接口
虚假唤醒
信号、原子操作与标准线程 · 条件变量、等待循环与超时
悬空指针
指针、指针运算与回调 · 常见陷阱
悬空指针
动态内存、生命周期与所有权 · free、生存期结束与悬空指针
悬空指针
作用域、链接与存储期 · 遮蔽、链接冲突与悬空对象
学习路线
入门导览与第一个程序 · 后续阅读路线
循环条件
条件、循环与跳转 · for 循环
严格别名
限定符、对象访问与程序行为边界 · 有效类型、兼容类型与别名访问
严格模式
C 标准演进、特性检测与可移植性 · 编译器扩展与严格一致性模式
严格一致程序
C 标准演进、特性检测与可移植性 · 一致性实现与实现文档
一致性实现
C 标准演进、特性检测与可移植性 · 一致性实现与实现文档
依赖文件
多文件项目、编译链接与构建系统 · 头文件依赖与增量构建
移位
运算符、表达式、求值与类型转换 · 位运算与移位
遗漏 break
条件、循环与跳转 · 嵌套控制流与常见陷阱
遗漏返回
函数、参数、返回值与递归 · 常见陷阱
遗漏汇合
信号、原子操作与标准线程 · 数据竞争、死锁与生命周期陷阱
已分配存储
动态内存、生命周期与所有权 · 动态存储与分配对象的生存期
已分配存储期
作用域、链接与存储期 · 自动、静态、线程与已分配存储期
异步信号
信号、原子操作与标准线程 · 信号处理函数与可访问状态
异常标志
数值转换、数学、排序、查找、随机与时间 · 浮点环境、舍入与异常标志
异常终止
标准库地图、错误约定与程序控制 · 异常终止与 abort
溢出
基本类型、对象、声明与初始化 · 常见陷阱
溢出比较器
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间陷阱
溢出诊断
警告、调试、静态分析与消毒器 · UndefinedBehaviorSanitizer 与行为边界
隐藏所有权
自动化测试、接口设计、风格与文档 · 常见测试与接口陷阱
硬件映射
限定符、对象访问与程序行为边界 · volatile 与可观察访问
优化级别
警告、调试、静态分析与消毒器 · 调试信息、优化与可复现问题
优化影响
警告、调试、静态分析与消毒器 · 工具边界与常见诊断陷阱
优先级
类型、运算符、声明、头文件与术语总索引 · 运算符与表达式类别
有符号溢出
运算符、表达式、求值与类型转换 · 常见陷阱
有限状态
结构体、联合、枚举、位域与类型别名 · 枚举类型与枚举常量
有效类型
限定符、对象访问与程序行为边界 · 有效类型、兼容类型与别名访问
预处理
多文件项目、编译链接与构建系统 · 预处理、编译、汇编与链接
预处理
类型、运算符、声明、头文件与术语总索引 · 预处理、宏与条件编译
预处理输出
声明、定义、头文件与预处理器 · 翻译单元与多文件程序
预定义宏
C 标准演进、特性检测与可移植性 · __STDC__ 与 __STDC_VERSION__
元素大小
数值转换、数学、排序、查找、随机与时间 · 排序、查找与比较器契约
元素数量
动态内存、生命周期与所有权 · 分配大小、元素数量与溢出
元素数量
格式化输入输出、流与文件 · fread、fwrite 与二进制块读写
原子对象
限定符、对象访问与程序行为边界 · 原子对象的基本访问规则
原子访问
限定符、对象访问与程序行为边界 · 原子对象的基本访问规则
源代码兼容
C 标准演进、特性检测与可移植性 · C11/C17 向 C23 迁移清单
源位置
警告、调试、静态分析与消毒器 · 编译期与链接期诊断
源文件
声明、定义、头文件与预处理器 · 翻译单元与多文件程序
源文件
多文件项目、编译链接与构建系统 · 工程目录与构建产物地图
约束违反
限定符、对象访问与程序行为边界 · 未定义、未指定与实现定义行为
阅读顺序
入门导览与第一个程序 · 后续阅读路线
越界
数组与字符串 · 常见陷阱
越界
警告、调试、静态分析与消毒器 · AddressSanitizer 与内存错误
运算符
类型、运算符、声明、头文件与术语总索引 · 运算符与表达式类别
运算符陷阱
运算符、表达式、求值与类型转换 · 常见陷阱
运算符优先级
运算符、表达式、求值与类型转换 · 优先级、结合性与括号
运行期断言
标准库地图、错误约定与程序控制 · 断言与运行期诊断
运行期长度
数组与字符串 · VLA 与变长修改类型
运行时检查
警告、调试、静态分析与消毒器 · UndefinedBehaviorSanitizer 与行为边界
运行时约束
字符串、内存、字符分类与本地化 · Annex K 边界检查接口
暂定定义
声明、定义、头文件与预处理器 · 外部定义与暂定定义
增量构建
多文件项目、编译链接与构建系统 · 头文件依赖与增量构建
栈帧
警告、调试、静态分析与消毒器 · 断点、单步与调用栈
长度推断
数组与字符串 · 数组初始化、长度推断与 sizeof
诊断
标准库地图、错误约定与程序控制 · 断言与运行期诊断
诊断
类型、运算符、声明、头文件与术语总索引 · 行为、诊断、并发与可移植性术语
诊断上下文
警告、调试、静态分析与消毒器 · 编译期与链接期诊断
诊断选项
C 标准演进、特性检测与可移植性 · 编译器扩展与严格一致性模式
整数除法
运算符、表达式、求值与类型转换 · 算术运算与常用类型转换
整数类型
基本类型、对象、声明与初始化 · 基本类型家族
整数提升
运算符、表达式、求值与类型转换 · 算术运算与常用类型转换
正常路径
自动化测试、接口设计、风格与文档 · 正常、边界与错误路径
执行环境
C 标准演进、特性检测与可移植性 · hosted 与 freestanding
值表示
限定符、对象访问与程序行为边界 · 对象表示、值表示与填充字节
只测成功路径
自动化测试、接口设计、风格与文档 · 常见测试与接口陷阱
只读对象
基本类型、对象、声明与初始化 · const 对象
只读访问
指针、指针运算与回调 · 指针与 const 组合
只读字面量
数组与字符串 · 字符数组与字符串字面量
指定初始化器
结构体、联合、枚举、位域与类型别名 · 聚合初始化、指定初始化器与复制
指向常量
指针、指针运算与回调 · 指针与 const 组合
指向数组的指针
数组与字符串 · 多维数组与行优先布局
指向数组的指针
指针、指针运算与回调 · 数组与指针的关系
指针比较
指针、指针运算与回调 · 指针相减与比较
指针对象
指针、指针运算与回调 · 指针对象、地址与解引用
指针加减
指针、指针运算与回调 · 指针算术与单尾位置
指针陷阱
指针、指针运算与回调 · 常见陷阱
中英文术语
类型、运算符、声明、头文件与术语总索引 · 中英文术语与章节交叉引用
终止空字符
数组与字符串 · 遍历、哨兵与边界
终止条件
函数、参数、返回值与递归 · 递归、基例与终止条件
终止状态
标准库地图、错误约定与程序控制 · 异常终止与 abort
重复包含
声明、定义、头文件与预处理器 · #include 与 include guard
重复定义
声明、定义、头文件与预处理器 · 重复定义、宏污染与保留标识符
重复符号
多文件项目、编译链接与构建系统 · 目标文件、符号与链接诊断
重复求值
声明、定义、头文件与预处理器 · 宏展开、括号与副作用
重复释放
动态内存、生命周期与所有权 · 常见陷阱
重新编译
多文件项目、编译链接与构建系统 · 头文件依赖与增量构建
转换例外
数组与字符串 · 数组到指针的转换
状态码
自动化测试、接口设计、风格与文档 · 状态码、所有权与缓冲区接口
资源清理
自动化测试、接口设计、风格与文档 · 确定性、隔离与清理
资源释放
动态内存、生命周期与所有权 · 清理路径与失败回滚
字段宽度
格式化输入输出、流与文件 · scanf 家族与格式化输入
字符串化
声明、定义、头文件与预处理器 · 字符串化与记号拼接
字符串长度
字符串、内存、字符分类与本地化 · 空字符结尾字符串与数组边界
字符串字面量
数组与字符串 · 字符数组与字符串字面量
字符类型
基本类型、对象、声明与初始化 · 基本类型家族
字符类型
限定符、对象访问与程序行为边界 · 字符类型访问与 memcpy
字符数组
数组与字符串 · 字符数组与字符串字面量
字符数组
字符串、内存、字符分类与本地化 · 空字符结尾字符串与数组边界
字节访问
限定符、对象访问与程序行为边界 · 字符类型访问与 memcpy
字节序
C 标准演进、特性检测与可移植性 · 对象表示、字节序与对齐
字面量修改
数组与字符串 · 常见陷阱
自包含头文件
声明、定义、头文件与预处理器 · 自包含头文件与接口契约
自包含头文件
自动化测试、接口设计、风格与文档 · 公开头文件与 API 契约
自动存储期
作用域、链接与存储期 · 自动、静态、线程与已分配存储期
自动对象
作用域、链接与存储期 · 递归、自动状态与静态状态
自动门禁
自动化测试、接口设计、风格与文档 · 测试框架与 CI 入口
自增自减
运算符、表达式、求值与类型转换 · 赋值、自增自减与复合赋值
总索引
类型、运算符、声明、头文件与术语总索引 · 索引范围与使用方法
最小复现
警告、调试、静态分析与消毒器 · 崩溃信息与最小复现
左值访问
限定符、对象访问与程序行为边界 · 有效类型、兼容类型与别名访问
作用域
作用域、链接与存储期 · 作用域、链接、存储期与生存期
abnormal termination
标准库地图、错误约定与程序控制 · 异常终止与 abort
abort
标准库地图、错误约定与程序控制 · 异常终止与 abort
abs
数值转换、数学、排序、查找、随机与时间 · 整数工具与检查算术
add_executable
多文件项目、编译链接与构建系统 · CMake 目标模型入口
add_library
多文件项目、编译链接与构建系统 · CMake 目标模型入口
address sanitizer
警告、调试、静态分析与消毒器 · AddressSanitizer 与内存错误
aggregate copy
结构体、联合、枚举、位域与类型别名 · 聚合初始化、指定初始化器与复制
aggregate pitfalls
结构体、联合、枚举、位域与类型别名 · 常见陷阱
aligned_alloc
动态内存、生命周期与所有权 · 零大小请求、对齐与接口边界
alignof
运算符、表达式、求值与类型转换 · 显式转换、大小与对齐
allocated storage
动态内存、生命周期与所有权 · 动态存储与分配对象的生存期
allocation size
动态内存、生命周期与所有权 · 分配大小、元素数量与溢出
Annex K
字符串、内存、字符分类与本地化 · Annex K 边界检查接口
API 契约
自动化测试、接口设计、风格与文档 · 公开头文件与 API 契约
API 文档
自动化测试、接口设计、风格与文档 · API 注释与使用示例
ar
多文件项目、编译链接与构建系统 · 静态库与归档工具
archive
多文件项目、编译链接与构建系统 · 静态库与归档工具
argc
标准库地图、错误约定与程序控制 · 命令行参数与环境查询
argv
标准库地图、错误约定与程序控制 · 命令行参数与环境查询
array decay
数组与字符串 · 数组到指针的转换
array decay
指针、指针运算与回调 · 数组与指针的关系
array parameter
数组与字符串 · 数组参数与长度契约
array type
数组与字符串 · 数组类型、元素与有效下标
ASan
警告、调试、静态分析与消毒器 · AddressSanitizer 与内存错误
assert
标准库地图、错误约定与程序控制 · 断言与运行期诊断
associativity
运算符、表达式、求值与类型转换 · 优先级、结合性与括号
at_quick_exit
标准库地图、错误约定与程序控制 · 快速与立即终止
atexit
标准库地图、错误约定与程序控制 · 正常终止与退出处理函数
atomic object
限定符、对象访问与程序行为边界 · 原子对象的基本访问规则
atomic object
信号、原子操作与标准线程 · 原子能力、对象与初始化
atomic operations
信号、原子操作与标准线程 · 原子加载、存储与读改写
atomic_fetch_add
信号、原子操作与标准线程 · 原子加载、存储与读改写
atomic_flag
信号、原子操作与标准线程 · 比较交换、atomic_flag 与无锁查询
atomic_init
信号、原子操作与标准线程 · 原子能力、对象与初始化
atomic_load
信号、原子操作与标准线程 · 原子加载、存储与读改写
atomic_signal_fence
信号、原子操作与标准线程 · 内存顺序与线程、信号栅栏
atomic_store
信号、原子操作与标准线程 · 原子加载、存储与读改写
atomic_thread_fence
信号、原子操作与标准线程 · 内存顺序与线程、信号栅栏
backtrace
警告、调试、静态分析与消毒器 · 断点、单步与调用栈
behavior taxonomy
限定符、对象访问与程序行为边界 · 未定义、未指定与实现定义行为
bilingual glossary
类型、运算符、声明、头文件与术语总索引 · 中英文术语与章节交叉引用
bit-field
结构体、联合、枚举、位域与类型别名 · 位域、宽度与实现边界
bitmask
运算符、表达式、求值与类型转换 · 位运算与移位
block I/O
格式化输入输出、流与文件 · fread、fwrite 与二进制块读写
break
条件、循环与跳转 · break、continue 与 goto
bsearch
数值转换、数学、排序、查找、随机与时间 · 排序、查找与比较器契约
buffering
格式化输入输出、流与文件 · 缓冲、刷新与交互式输出
build
入门导览与第一个程序 · 编译与运行
build pipeline
多文件项目、编译链接与构建系统 · 预处理、编译、汇编与链接
build pitfalls
多文件项目、编译链接与构建系统 · 常见构建陷阱
build profile
多文件项目、编译链接与构建系统 · Debug、Release 与构建配置
bytewise copy
限定符、对象访问与程序行为边界 · 字符类型访问与 memcpy
bytewise operation
字符串、内存、字符分类与本地化 · 内存操作与对象重叠
C 字符串
数组与字符串 · 字符数组与字符串字面量
C locale
字符串、内存、字符分类与本地化 · locale 类别与 setlocale
C string
字符串、内存、字符分类与本地化 · 空字符结尾字符串与数组边界
C11
C 标准演进、特性检测与可移植性 · C11、C17、C23 基线地图
C17
C 标准演进、特性检测与可移植性 · C11、C17、C23 基线地图
C23
入门导览与第一个程序 · 工具链与命令行
C23
C 标准演进、特性检测与可移植性 · C11、C17、C23 基线地图
calendar time
数值转换、数学、排序、查找、随机与时间 · 日历时间与分解时间
call_once
信号、原子操作与标准线程 · 一次初始化与线程专用存储
callback
指针、指针运算与回调 · 函数指针与类型明确的回调
calloc
动态内存、生命周期与所有权 · malloc、calloc 与初始状态
capability detection
C 标准演进、特性检测与可移植性 · 能力探测程序及输出解释
case
条件、循环与跳转 · switch、case 与 default
cast
运算符、表达式、求值与类型转换 · 显式转换、大小与对齐
cc
入门导览与第一个程序 · 工具链与命令行
CHAR_BIT
基本类型、对象、声明与初始化 · 大小与范围
CHAR_BIT
限定符、对象访问与程序行为边界 · 可移植性边界与实现假设
char16_t
字符串、内存、字符分类与本地化 · C23 编码字符类型与 Unicode 边界
char32_t
字符串、内存、字符分类与本地化 · C23 编码字符类型与 Unicode 边界
char8_t
字符串、内存、字符分类与本地化 · C23 编码字符类型与 Unicode 边界
checked arithmetic
数值转换、数学、排序、查找、随机与时间 · 整数工具与检查算术
CI
自动化测试、接口设计、风格与文档 · 测试框架与 CI 入口
ckd_add
数值转换、数学、排序、查找、随机与时间 · 整数工具与检查算术
Clang
入门导览与第一个程序 · 工具链与命令行
cleanup path
动态内存、生命周期与所有权 · 清理路径与失败回滚
clearerr
格式化输入输出、流与文件 · EOF、错误标志与状态清理
CLI 测试
自动化测试、接口设计、风格与文档 · 单元、集成与命令行测试
clock_t
数值转换、数学、排序、查找、随机与时间 · 处理器时间、时间基准与持续时间
CMake
多文件项目、编译链接与构建系统 · CMake 目标模型入口
CMake target
多文件项目、编译链接与构建系统 · CMake 目标模型入口
cnd_signal
信号、原子操作与标准线程 · 条件变量、等待循环与超时
cnd_t
信号、原子操作与标准线程 · 条件变量、等待循环与超时
cnd_wait
信号、原子操作与标准线程 · 条件变量、等待循环与超时
coding style
自动化测试、接口设计、风格与文档 · 命名、格式与 const 使用
compare and exchange
信号、原子操作与标准线程 · 比较交换、atomic_flag 与无锁查询
compare_exchange
信号、原子操作与标准线程 · 比较交换、atomic_flag 与无锁查询
compiler diagnostic
警告、调试、静态分析与消毒器 · 编译期与链接期诊断
complex math
数值转换、数学、排序、查找、随机与时间 · 复数与类型泛化数学
complex.h
数值转换、数学、排序、查找、随机与时间 · 复数与类型泛化数学
compound assignment
运算符、表达式、求值与类型转换 · 赋值、自增自减与复合赋值
concurrency library map
信号、原子操作与标准线程 · 信号、原子与线程接口地图
concurrency pitfalls
信号、原子操作与标准线程 · 数据竞争、死锁与生命周期陷阱
condition variable
信号、原子操作与标准线程 · 条件变量、等待循环与超时
conditional compilation
声明、定义、头文件与预处理器 · 条件编译与特性检测
conditional feature
C 标准演进、特性检测与可移植性 · 条件特性与 __STDC_NO_*__
conformance
C 标准演进、特性检测与可移植性 · 一致性实现与实现文档
conformance mode
C 标准演进、特性检测与可移植性 · 编译器扩展与严格一致性模式
const
基本类型、对象、声明与初始化 · const 对象
const
限定符、对象访问与程序行为边界 · 限定类型与限定转换
const
自动化测试、接口设计、风格与文档 · 命名、格式与 const 使用
const 对象
限定符、对象访问与程序行为边界 · const 与可修改左值
const pointer
指针、指针运算与回调 · 指针与 const 组合
continue
条件、循环与跳转 · break、continue 与 goto
continuous integration
自动化测试、接口设计、风格与文档 · 测试框架与 CI 入口
ctype
字符串、内存、字符分类与本地化 · 字符分类、大小写与合法参数
dangling pointer
动态内存、生命周期与所有权 · free、生存期结束与悬空指针
Debug
警告、调试、静态分析与消毒器 · 调试信息、优化与可复现问题
Debug 构建
多文件项目、编译链接与构建系统 · Debug、Release 与构建配置
debug build
警告、调试、静态分析与消毒器 · 调试信息、优化与可复现问题
declaration index
类型、运算符、声明、头文件与术语总索引 · 声明、声明符与类型名
declaration vs definition
声明、定义、头文件与预处理器 · 声明与定义
default
条件、循环与跳转 · switch、case 与 default
dependency file
多文件项目、编译链接与构建系统 · 头文件依赖与增量构建
dereference
指针、指针运算与回调 · 指针对象、地址与解引用
diagnostic pitfalls
警告、调试、静态分析与消毒器 · 工具边界与常见诊断陷阱
diagnostic workflow
警告、调试、静态分析与消毒器 · 诊断工具选择地图
difftime
数值转换、数学、排序、查找、随机与时间 · 处理器时间、时间基准与持续时间
div
数值转换、数学、排序、查找、随机与时间 · 整数工具与检查算术
do while
条件、循环与跳转 · while 与 do while
documentation comment
自动化测试、接口设计、风格与文档 · API 注释与使用示例
dynamic allocation
动态内存、生命周期与所有权 · malloc、calloc 与初始状态
dynamic memory pitfalls
动态内存、生命周期与所有权 · 常见陷阱
EDOM
标准库地图、错误约定与程序控制 · errno 与错误宏
effective type
限定符、对象访问与程序行为边界 · 有效类型、兼容类型与别名访问
EILSEQ
标准库地图、错误约定与程序控制 · errno 与错误宏
EILSEQ
字符串、内存、字符分类与本地化 · 多字节转换与 mbstate_t
else
条件、循环与跳转 · if 与 else
encoded character
字符串、内存、字符分类与本地化 · C23 编码字符类型与 Unicode 边界
endptr
数值转换、数学、排序、查找、随机与时间 · 文本数值转换与结束位置
enum
结构体、联合、枚举、位域与类型别名 · 枚举类型与枚举常量
EOF
格式化输入输出、流与文件 · EOF、错误标志与状态清理
ERANGE
标准库地图、错误约定与程序控制 · errno 与错误宏
errno
标准库地图、错误约定与程序控制 · errno 与错误宏
error handling pitfalls
标准库地图、错误约定与程序控制 · 错误处理与程序控制陷阱
error number
标准库地图、错误约定与程序控制 · errno 与错误宏
exit
标准库地图、错误约定与程序控制 · 正常终止与退出处理函数
EXIT_SUCCESS
标准库地图、错误约定与程序控制 · 正常终止与退出处理函数
expected
信号、原子操作与标准线程 · 比较交换、atomic_flag 与无锁查询
expression
运算符、表达式、求值与类型转换 · 表达式、操作数与结果类型
extern
作用域、链接与存储期 · static 与 extern
fallthrough
条件、循环与跳转 · switch、case 与 default
FAM
结构体、联合、枚举、位域与类型别名 · 柔性数组成员
fclose
格式化输入输出、流与文件 · 文件打开模式与流生命周期
feature probe
C 标准演进、特性检测与可移植性 · 能力探测程序及输出解释
fenv.h
数值转换、数学、排序、查找、随机与时间 · 浮点环境、舍入与异常标志
fenv.h
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间接口地图
feof
格式化输入输出、流与文件 · EOF、错误标志与状态清理
ferror
格式化输入输出、流与文件 · EOF、错误标志与状态清理
fflush
格式化输入输出、流与文件 · 缓冲、刷新与交互式输出
fflush(stdin)
格式化输入输出、流与文件 · 流与文件操作陷阱
fgetc
格式化输入输出、流与文件 · 字符、字符串与行输入输出
fgetpos
格式化输入输出、流与文件 · 文件位置与重新定位
fgets
格式化输入输出、流与文件 · 字符、字符串与行输入输出
FILE
格式化输入输出、流与文件 · FILE、标准流与流方向
file management
格式化输入输出、流与文件 · 文件重命名、删除与临时文件
file mode
格式化输入输出、流与文件 · 文件打开模式与流生命周期
file positioning
格式化输入输出、流与文件 · 文件位置与重新定位
file-local function
函数、参数、返回值与递归 · 局部状态、static 函数与接口边界
floating environment
数值转换、数学、排序、查找、随机与时间 · 浮点环境、舍入与异常标志
fopen
格式化输入输出、流与文件 · 文件打开模式与流生命周期
for
条件、循环与跳转 · for 循环
formatted input
格式化输入输出、流与文件 · scanf 家族与格式化输入
formatted output
格式化输入输出、流与文件 · printf 家族与格式化输出
fpclassify
数值转换、数学、排序、查找、随机与时间 · 实数数学、分类与错误报告
fprintf
格式化输入输出、流与文件 · printf 家族与格式化输出
fputc
格式化输入输出、流与文件 · 字符、字符串与行输入输出
fputs
格式化输入输出、流与文件 · 字符、字符串与行输入输出
fread
格式化输入输出、流与文件 · fread、fwrite 与二进制块读写
free
动态内存、生命周期与所有权 · free、生存期结束与悬空指针
freestanding
C 标准演进、特性检测与可移植性 · hosted 与 freestanding
fscanf
格式化输入输出、流与文件 · scanf 家族与格式化输入
fseek
格式化输入输出、流与文件 · 文件位置与重新定位
ftell
格式化输入输出、流与文件 · 文件位置与重新定位
function parameters
函数、参数、返回值与递归 · C23 参数列表
fwrite
格式化输入输出、流与文件 · fread、fwrite 与二进制块读写
GCC
入门导览与第一个程序 · 工具链与命令行
getenv
标准库地图、错误约定与程序控制 · 命令行参数与环境查询
goto
条件、循环与跳转 · break、continue 与 goto
happens-before
信号、原子操作与标准线程 · 内存顺序与线程、信号栅栏
header contract
声明、定义、头文件与预处理器 · 自包含头文件与接口契约
header contract
自动化测试、接口设计、风格与文档 · 公开头文件与 API 契约
header guard
声明、定义、头文件与预处理器 · #include 与 include guard
header index
类型、运算符、声明、头文件与术语总索引 · 标准头文件
Hello World
入门导览与第一个程序 · 第一个完整程序
hosted
C 标准演进、特性检测与可移植性 · hosted 与 freestanding
identifier namespace
作用域、链接与存储期 · 标识符的名字空间
if
条件、循环与跳转 · if 与 else
immediate termination
标准库地图、错误约定与程序控制 · 快速与立即终止
implementation detail
自动化测试、接口设计、风格与文档 · 内部实现与链接可见性
implementation limits
C 标准演进、特性检测与可移植性 · 翻译限制、整数范围与数据模型
include guard
声明、定义、头文件与预处理器 · #include 与 include guard
include guard
多文件项目、编译链接与构建系统 · 公开头文件与内部头文件
int32_t
基本类型、对象、声明与初始化 · 定宽整数
integer promotions
运算符、表达式、求值与类型转换 · 算术运算与常用类型转换
inttypes.h
基本类型、对象、声明与初始化 · 定宽整数
isalpha
字符串、内存、字符分类与本地化 · 字符分类、大小写与合法参数
isdigit
字符串、内存、字符分类与本地化 · 字符分类、大小写与合法参数
ISO C 版本
C 标准演进、特性检测与可移植性 · C11、C17、C23 基线地图
LC_ALL
字符串、内存、字符分类与本地化 · locale 类别与 setlocale
library contract
标准库地图、错误约定与程序控制 · 接口契约、前置条件与失败约定
library index
类型、运算符、声明、头文件与术语总索引 · 标准库接口
library map
标准库地图、错误约定与程序控制 · 标准库头文件与任务地图
library portability
C 标准演进、特性检测与可移植性 · 头文件和库接口的可移植边界
line I/O
格式化输入输出、流与文件 · 字符、字符串与行输入输出
linkage
作用域、链接与存储期 · 无链接、内部链接与外部链接
locale 依赖
字符串、内存、字符分类与本地化 · 字符串、内存与本地化陷阱
localeconv
字符串、内存、字符分类与本地化 · locale 类别与 setlocale
lock-free
信号、原子操作与标准线程 · 比较交换、atomic_flag 与无锁查询
macro
声明、定义、头文件与预处理器 · 对象式宏与函数式宏
macro expansion
声明、定义、头文件与预处理器 · 宏展开、括号与副作用
main
入门导览与第一个程序 · 第一个完整程序
make rule
多文件项目、编译链接与构建系统 · Make 目标、前置条件与配方
Makefile
多文件项目、编译链接与构建系统 · Make 目标、前置条件与配方
malloc
动态内存、生命周期与所有权 · malloc、calloc 与初始状态
math_errhandling
数值转换、数学、排序、查找、随机与时间 · 实数数学、分类与错误报告
math.h
数值转换、数学、排序、查找、随机与时间 · 实数数学、分类与错误报告
math.h
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间接口地图
mbrtowc
字符串、内存、字符分类与本地化 · 多字节转换与 mbstate_t
mbstate_t
字符串、内存、字符分类与本地化 · 多字节转换与 mbstate_t
member access
结构体、联合、枚举、位域与类型别名 · 成员访问与结构体指针
memcmp
字符串、内存、字符分类与本地化 · 内存操作与对象重叠
memcpy
限定符、对象访问与程序行为边界 · 字符类型访问与 memcpy
memcpy
字符串、内存、字符分类与本地化 · 内存操作与对象重叠
memmove
字符串、内存、字符分类与本地化 · 内存操作与对象重叠
memory ordering
信号、原子操作与标准线程 · 内存顺序与线程、信号栅栏
memory_order
信号、原子操作与标准线程 · 内存顺序与线程、信号栅栏
memset
字符串、内存、字符分类与本地化 · 内存操作与对象重叠
minimal reproducible example
警告、调试、静态分析与消毒器 · 崩溃信息与最小复现
mktime
数值转换、数学、排序、查找、随机与时间 · 日历时间与分解时间
modifiable lvalue
限定符、对象访问与程序行为边界 · const 与可修改左值
mtx_lock
信号、原子操作与标准线程 · 互斥量、锁定与释放
mtx_t
信号、原子操作与标准线程 · 互斥量、锁定与释放
mtx_unlock
信号、原子操作与标准线程 · 互斥量、锁定与释放
multibyte conversion
字符串、内存、字符分类与本地化 · 多字节转换与 mbstate_t
mutex locking
信号、原子操作与标准线程 · 互斥量、锁定与释放
NDEBUG
标准库地图、错误约定与程序控制 · 断言与运行期诊断
negative test
自动化测试、接口设计、风格与文档 · 正常、边界与错误路径
normal termination
标准库地图、错误约定与程序控制 · 正常终止与退出处理函数
NULL
指针、指针运算与回调 · C23 空指针
null pointer
指针、指针运算与回调 · C23 空指针
nullptr
指针、指针运算与回调 · C23 空指针
nullptr_t
指针、指针运算与回调 · C23 空指针
numeric conversion
数值转换、数学、排序、查找、随机与时间 · 文本数值转换与结束位置
numeric library map
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间接口地图
numeric time pitfalls
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间陷阱
object access pitfalls
限定符、对象访问与程序行为边界 · 限定符、别名与对象访问陷阱
object file
多文件项目、编译链接与构建系统 · 目标文件、符号与链接诊断
object index
类型、运算符、声明、头文件与术语总索引 · 限定符、存储期与链接
object layout
结构体、联合、枚举、位域与类型别名 · 成员顺序、填充、对齐与偏移
object representation
限定符、对象访问与程序行为边界 · 对象表示、值表示与填充字节
off-by-one
数组与字符串 · 遍历、哨兵与边界
offsetof
结构体、联合、枚举、位域与类型别名 · 成员顺序、填充、对齐与偏移
once_flag
信号、原子操作与标准线程 · 一次初始化与线程专用存储
operator index
类型、运算符、声明、头文件与术语总索引 · 运算符与表达式类别
out of memory
动态内存、生命周期与所有权 · 分配失败与空指针
ownership contract
动态内存、生命周期与所有权 · 持有、借用与所有权转移
ownership contract
自动化测试、接口设计、风格与文档 · 状态码、所有权与缓冲区接口
pass by address
指针、指针运算与回调 · 指针参数与输出参数
pass by value
函数、参数、返回值与递归 · 调用、实参与按值传递
point of declaration
作用域、链接与存储期 · 声明点与可见范围
pointer cast
指针、指针运算与回调 · 指针类型与转换
pointer distance
指针、指针运算与回调 · 指针相减与比较
pointer increment
指针、指针运算与回调 · 指针算术与单尾位置
portability boundary
限定符、对象访问与程序行为边界 · 可移植性边界与实现假设
portability pitfalls
C 标准演进、特性检测与可移植性 · 常见陷阱
precedence
运算符、表达式、求值与类型转换 · 优先级、结合性与括号
preprocessor index
类型、运算符、声明、头文件与术语总索引 · 预处理、宏与条件编译
preprocessor pitfalls
声明、定义、头文件与预处理器 · 重复定义、宏污染与保留标识符
printf
格式化输入输出、流与文件 · printf 家族与格式化输出
program environment
标准库地图、错误约定与程序控制 · 命令行参数与环境查询
project layout
多文件项目、编译链接与构建系统 · 工程目录与构建产物地图
prototype
函数、参数、返回值与递归 · 函数声明、原型与定义
pseudo-random number
数值转换、数学、排序、查找、随机与时间 · 伪随机数、种子与安全边界
ptrdiff_t
指针、指针运算与回调 · 指针相减与比较
public header
多文件项目、编译链接与构建系统 · 公开头文件与内部头文件
puts
入门导览与第一个程序 · 第一个完整程序
qsort
数值转换、数学、排序、查找、随机与时间 · 排序、查找与比较器契约
qualified type
限定符、对象访问与程序行为边界 · 限定类型与限定转换
quick_exit
标准库地图、错误约定与程序控制 · 快速与立即终止
raise
信号、原子操作与标准线程 · 信号模型、注册与触发
rand
数值转换、数学、排序、查找、随机与时间 · 伪随机数、种子与安全边界
RAND_MAX
数值转换、数学、排序、查找、随机与时间 · 伪随机数、种子与安全边界
real math
数值转换、数学、排序、查找、随机与时间 · 实数数学、分类与错误报告
realloc
动态内存、生命周期与所有权 · realloc 与安全扩缩容
recursive function
函数、参数、返回值与递归 · 递归、基例与终止条件
redeclaration
作用域、链接与存储期 · 同一实体的多次声明
reference index
类型、运算符、声明、头文件与术语总索引 · 索引范围与使用方法
Release 构建
多文件项目、编译链接与构建系统 · Debug、Release 与构建配置
remove
格式化输入输出、流与文件 · 文件重命名、删除与临时文件
rename
格式化输入输出、流与文件 · 文件重命名、删除与临时文件
representation portability
C 标准演进、特性检测与可移植性 · 对象表示、字节序与对齐
resize buffer
动态内存、生命周期与所有权 · realloc 与安全扩缩容
restrict
限定符、对象访问与程序行为边界 · 限定类型与限定转换
restrict
限定符、对象访问与程序行为边界 · restrict 的访问契约
restrict 违约
限定符、对象访问与程序行为边界 · 限定符、别名与对象访问陷阱
restricted pointer
限定符、对象访问与程序行为边界 · restrict 的访问契约
return
函数、参数、返回值与递归 · 返回值与 void 函数
return
标准库地图、错误约定与程序控制 · 正常终止与退出处理函数
return type
函数、参数、返回值与递归 · 返回值与 void 函数
rewind
格式化输入输出、流与文件 · 文件位置与重新定位
run
入门导览与第一个程序 · 编译与运行
runtime assertion
标准库地图、错误约定与程序控制 · 断言与运行期诊断
scanf
格式化输入输出、流与文件 · scanf 家族与格式化输入
scope
作用域、链接与存储期 · 文件、块、函数与函数原型作用域
scope pitfalls
作用域、链接与存储期 · 遮蔽、链接冲突与悬空对象
scope vs lifetime
作用域、链接与存储期 · 作用域、链接、存储期与生存期
sentinel value
标准库地图、错误约定与程序控制 · 返回值、空指针与哨兵值
sequenced before
运算符、表达式、求值与类型转换 · 求值顺序与副作用
setlocale
字符串、内存、字符分类与本地化 · locale 类别与 setlocale
setvbuf
格式化输入输出、流与文件 · 缓冲、刷新与交互式输出
shift
运算符、表达式、求值与类型转换 · 位运算与移位
sig_atomic_t
信号、原子操作与标准线程 · 信号处理函数与可访问状态
SIGABRT
标准库地图、错误约定与程序控制 · 异常终止与 abort
signal
信号、原子操作与标准线程 · 信号模型、注册与触发
signal handling
信号、原子操作与标准线程 · 信号模型、注册与触发
signal-safe state
信号、原子操作与标准线程 · 信号处理函数与可访问状态
signal.h
信号、原子操作与标准线程 · 信号模型、注册与触发
signal.h
信号、原子操作与标准线程 · 信号、原子与线程接口地图
size_t
动态内存、生命周期与所有权 · 分配大小、元素数量与溢出
sizeof
基本类型、对象、声明与初始化 · 大小与范围
sizeof
运算符、表达式、求值与类型转换 · 显式转换、大小与对齐
sizeof
数组与字符串 · 数组初始化、长度推断与 sizeof
sizeof
数组与字符串 · VLA 与变长修改类型
sizeof
结构体、联合、枚举、位域与类型别名 · 柔性数组成员
snprintf
格式化输入输出、流与文件 · printf 家族与格式化输出
sorting and searching
数值转换、数学、排序、查找、随机与时间 · 排序、查找与比较器契约
srand
数值转换、数学、排序、查找、随机与时间 · 伪随机数、种子与安全边界
sscanf
格式化输入输出、流与文件 · scanf 家族与格式化输入
standard version macro
C 标准演进、特性检测与可移植性 · __STDC__ 与 __STDC_VERSION__
standards migration
C 标准演进、特性检测与可移植性 · C11/C17 向 C23 迁移清单
static
作用域、链接与存储期 · static 与 extern
static 函数
函数、参数、返回值与递归 · 局部状态、static 函数与接口边界
static 函数
自动化测试、接口设计、风格与文档 · 内部实现与链接可见性
static 数组参数
数组与字符串 · 数组参数与长度契约
static analyzer
警告、调试、静态分析与消毒器 · 静态分析与误报处理
static local
作用域、链接与存储期 · 递归、自动状态与静态状态
stdarg.h
函数、参数、返回值与递归 · 可变参数函数
stdatomic.h
信号、原子操作与标准线程 · 原子能力、对象与初始化
stdatomic.h
信号、原子操作与标准线程 · 信号、原子与线程接口地图
stdckdint.h
数值转换、数学、排序、查找、随机与时间 · 整数工具与检查算术
stderr
格式化输入输出、流与文件 · FILE、标准流与流方向
stdin
格式化输入输出、流与文件 · FILE、标准流与流方向
stdint.h
基本类型、对象、声明与初始化 · 定宽整数
stdio pitfalls
格式化输入输出、流与文件 · 流与文件操作陷阱
stdio.h
入门导览与第一个程序 · 第一个完整程序
stdlib.h
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间接口地图
stdout
格式化输入输出、流与文件 · FILE、标准流与流方向
storage duration
作用域、链接与存储期 · 自动、静态、线程与已分配存储期
storage-class specifier
作用域、链接与存储期 · static 与 extern
strcat
字符串、内存、字符分类与本地化 · 长度、复制与拼接
strchr
字符串、内存、字符分类与本地化 · 比较、搜索与子串定位
strcmp
字符串、内存、字符分类与本地化 · 比较、搜索与子串定位
strcpy
字符串、内存、字符分类与本地化 · 长度、复制与拼接
stream model
格式化输入输出、流与文件 · FILE、标准流与流方向
stream status
格式化输入输出、流与文件 · EOF、错误标志与状态清理
strftime
数值转换、数学、排序、查找、随机与时间 · 日历时间与分解时间
string copy
字符串、内存、字符分类与本地化 · 长度、复制与拼接
string pitfalls
字符串、内存、字符分类与本地化 · 字符串、内存与本地化陷阱
string search
字符串、内存、字符分类与本地化 · 比较、搜索与子串定位
strlen
字符串、内存、字符分类与本地化 · 长度、复制与拼接
strncpy
字符串、内存、字符分类与本地化 · 长度、复制与拼接
strrchr
字符串、内存、字符分类与本地化 · 比较、搜索与子串定位
strstr
字符串、内存、字符分类与本地化 · 比较、搜索与子串定位
strtod
数值转换、数学、排序、查找、随机与时间 · 文本数值转换与结束位置
strtok
字符串、内存、字符分类与本地化 · 分词与有状态接口
strtol
数值转换、数学、排序、查找、随机与时间 · 文本数值转换与结束位置
strtoul
数值转换、数学、排序、查找、随机与时间 · 文本数值转换与结束位置
struct tm
数值转换、数学、排序、查找、随机与时间 · 日历时间与分解时间
struct type
结构体、联合、枚举、位域与类型别名 · 结构体类型、标签与成员
switch
条件、循环与跳转 · switch、case 与 default
system test
自动化测试、接口设计、风格与文档 · 单元、集成与命令行测试
tagged union
结构体、联合、枚举、位域与类型别名 · 联合体与带标签变体
target_link_libraries
多文件项目、编译链接与构建系统 · CMake 目标模型入口
tentative definition
声明、定义、头文件与预处理器 · 外部定义与暂定定义
terminology index
类型、运算符、声明、头文件与术语总索引 · 行为、诊断、并发与可移植性术语
test harness
自动化测试、接口设计、风格与文档 · 标准 C 最小测试夹具
test isolation
自动化测试、接口设计、风格与文档 · 确定性、隔离与清理
test strategy
自动化测试、接口设计、风格与文档 · C 测试策略地图
testing pitfalls
自动化测试、接口设计、风格与文档 · 常见测试与接口陷阱
tgmath.h
数值转换、数学、排序、查找、随机与时间 · 复数与类型泛化数学
thrd_create
信号、原子操作与标准线程 · 标准线程能力、创建与汇合
thrd_detach
信号、原子操作与标准线程 · 标准线程能力、创建与汇合
thrd_join
信号、原子操作与标准线程 · 标准线程能力、创建与汇合
thread lifecycle
信号、原子操作与标准线程 · 标准线程能力、创建与汇合
thread_local
信号、原子操作与标准线程 · 一次初始化与线程专用存储
thread-specific storage
信号、原子操作与标准线程 · 一次初始化与线程专用存储
threads.h
信号、原子操作与标准线程 · 标准线程能力、创建与汇合
threads.h
信号、原子操作与标准线程 · 信号、原子与线程接口地图
time measurement
数值转换、数学、排序、查找、随机与时间 · 处理器时间、时间基准与持续时间
time_t
数值转换、数学、排序、查找、随机与时间 · 日历时间与分解时间
time.h
数值转换、数学、排序、查找、随机与时间 · 数值、算法、随机与时间接口地图
timespec
数值转换、数学、排序、查找、随机与时间 · 处理器时间、时间基准与持续时间
timespec_get
数值转换、数学、排序、查找、随机与时间 · 处理器时间、时间基准与持续时间
tmpfile
格式化输入输出、流与文件 · 文件重命名、删除与临时文件
token pasting
声明、定义、头文件与预处理器 · 字符串化与记号拼接
tokenization
字符串、内存、字符分类与本地化 · 分词与有状态接口
toupper
字符串、内存、字符分类与本地化 · 字符分类、大小写与合法参数
towupper
字符串、内存、字符分类与本地化 · 宽字符、宽字符串与字符分类
translation unit
声明、定义、头文件与预处理器 · 翻译单元与多文件程序
translation unit
多文件项目、编译链接与构建系统 · 翻译单元、声明与定义
truth value
条件、循环与跳转 · 条件表达式与真假规则
tss_create
信号、原子操作与标准线程 · 一次初始化与线程专用存储
type alias
结构体、联合、枚举、位域与类型别名 · typedef 与类型别名
type index
类型、运算符、声明、头文件与术语总索引 · 基本类型、派生类型与复合类型
typedef
指针、指针运算与回调 · 函数指针与类型明确的回调
typedef
结构体、联合、枚举、位域与类型别名 · typedef 与类型别名
UBSan
警告、调试、静态分析与消毒器 · UndefinedBehaviorSanitizer 与行为边界
uchar.h
字符串、内存、字符分类与本地化 · C23 编码字符类型与 Unicode 边界
undefined behavior sanitizer
警告、调试、静态分析与消毒器 · UndefinedBehaviorSanitizer 与行为边界
unsequenced
运算符、表达式、求值与类型转换 · 求值顺序与副作用
unsigned char
限定符、对象访问与程序行为边界 · 对象表示、值表示与填充字节
unsigned char
字符串、内存、字符分类与本地化 · 字符分类、大小写与合法参数
usual arithmetic conversions
运算符、表达式、求值与类型转换 · 算术运算与常用类型转换
va_list
函数、参数、返回值与递归 · 可变参数函数
variable length array
数组与字符串 · VLA 与变长修改类型
variadic function
函数、参数、返回值与递归 · 可变参数函数
variadic macro
声明、定义、头文件与预处理器 · 可变参数宏与 C23 __VA_OPT__
VLA
数组与字符串 · VLA 与变长修改类型
void
基本类型、对象、声明与初始化 · 基本类型家族
void
函数、参数、返回值与递归 · C23 参数列表
void *
指针、指针运算与回调 · 指针类型与转换
void 函数
函数、参数、返回值与递归 · 返回值与 void 函数
volatile
限定符、对象访问与程序行为边界 · 限定类型与限定转换
volatile
信号、原子操作与标准线程 · 信号处理函数与可访问状态
volatile 访问
限定符、对象访问与程序行为边界 · volatile 与可观察访问
volatile 误用
限定符、对象访问与程序行为边界 · 限定符、别名与对象访问陷阱
volatile access
限定符、对象访问与程序行为边界 · volatile 与可观察访问
warnings as errors
警告、调试、静态分析与消毒器 · 严格警告与把警告当错误
watchpoint
警告、调试、静态分析与消毒器 · 变量、表达式与数据流检查
wchar_t
字符串、内存、字符分类与本地化 · 宽字符、宽字符串与字符分类
wcrtomb
字符串、内存、字符分类与本地化 · 多字节转换与 mbstate_t
wcslen
字符串、内存、字符分类与本地化 · 宽字符、宽字符串与字符分类
wctype
字符串、内存、字符分类与本地化 · 宽字符、宽字符串与字符分类
while
条件、循环与跳转 · while 与 do while
wide character
字符串、内存、字符分类与本地化 · 宽字符、宽字符串与字符分类
zero-size request
动态内存、生命周期与所有权 · 零大小请求、对齐与接口边界