C 代码审查清单

整理 C 语言工程代码审查时需要重点关注的接口、内存、错误路径和可测试性。

审查目标

C 代码审查不是挑风格问题,而是提前发现运行时成本最高的问题:内存错误、资源泄漏、接口歧义、错误路径遗漏和不可测试的全局状态。

接口语义

先看函数接口是否清楚:

  • 参数能否为 NULL
  • 返回值如何表达错误
  • 调用方是否负责释放资源
  • 输出参数失败时是否有效
  • 函数是否修改传入缓冲区

接口语义不清楚时,后续实现再漂亮也容易出问题。

内存和边界

重点检查长度、容量和生命周期:

  • 字符串空间是否包含 \0
  • memcpysnprintf、数组下标是否有边界
  • 释放路径是否覆盖所有失败分支
  • 指针释放后是否还会被访问

错误路径

C 项目里很多 bug 只在异常路径出现。审查时要刻意走失败分支:申请失败、文件打开失败、设备不存在、协议字段不合法、部分初始化后返回错误。

小结

好的代码审查清单能把经验固化下来。每次发现新问题,都应该把它变成下一次能提前检查的条目。

使用 Hugo 构建
主题 StackJimmy 设计