使用 clang-format 可自动统一 C++ 代码风格。通过安装工具、生成 .clang-format 配置文件,并在命令行或编辑器中调用,实现代码格式化;支持多种编码规范,可集成到 Git 提交流程,确保提交代码符合规范,提升团队协作效率。

直接使用 clang-format 格式化 C++ 代码
clang-format 是 LLVM 项目中一个强大的代码格式化工具,能自动将 C++ 代码调整为指定风格。它支持多种主流编码规范(如 Google、LLVM、Chromium、Mozilla 等),也可以自定义规则。配置后可在命令行、编辑器或 CI 流程中自动运行。
安装 clang-format
在常用系统上安装方式如下:
- Ubuntu/Debian:sudo apt install clang-format
- macOS(使用 Homebrew):brew install clang-format
- Windows:可通过 LLVM 官网下载安装包,或使用 vcpkg、scoop 安装
安装完成后,验证是否可用:clang-format --version
生成配置文件 .clang-format
在项目根目录创建 .clang-format 文件,定义代码风格。可使用以下命令生成默认配置:
立即学习“C++免费学习笔记(深入)”;
clang-format -style=google -dump-config > .clang-format也可选择其他内置样式:
- -style=LLVM:LLVM 项目风格
- -style=Google:Google C++ 风格
- -style=Chromium:Chromium 项目风格
- -style=Mozilla:Mozilla 风格
- -style=Microsoft:微软风格
若需自定义,可手动编辑 .clang-format,常见设置项包括:
BasedOnStyle: GoogleIndentWidth: 4
TabWidth: 4
UseTab: Never
BreakBeforeBraces: Allman
AllowShortIfStatementsOnASingleLine: false
ColumnLimit: 100
在项目中使用 clang-format
格式化单个文件:
clang-format -i src/main.cpp格式化多个文件(如所有 .cpp 和 .h 文件):
find . -name "*.cpp" -o -name "*.h" | xargs clang-format -i只查看改动而不写入文件:
clang-format src/main.cpp集成到编辑器提升效率
多数现代编辑器支持保存时自动格式化:
- VS Code:安装 C/C++ Extension Pack,在设置中启用 "C_Cpp.formatting" 为 "clang-format"
- Vim/Neovim:配合 ale 或 vim-lsp 插件,在保存时调用 clang-format
- CLion:在 Settings → Tools → Clang-Format 中指定配置文件路径
结合 Git 实现自动化校验
可通过 Git 钩子在提交前自动格式化代码。创建 .git/hooks/pre-commit 脚本:
#!/bin/shfiles=$(git diff --cached --name-only --diff-filter=ACM | grep '\.cpp\|\.h$')
for file in $files; do
clang-format -i "$file"
git add "$file"
done
赋予执行权限:chmod +x .git/hooks/pre-commit
这样每次提交时会自动格式化变更的 C++ 文件。
小结
使用 clang-format 可有效统一团队代码风格。关键是项目根目录放置 .clang-format 文件,并让所有成员使用相同版本工具。配合编辑器和 Git 钩子,实现“编写即规范”,减少人工 Review 成本。
基本上就这些。











