MENU

clangd格式化C++代码配置

February 9, 2026 • AI与大数据,编程语言

背景

在使用vscode/cursor等各种vs系代码编辑器(配合AI Agent)时,当使用 clangd 作为C++的格式化引擎时,会出现格式化风格与 visual studio 代码格式化风格不一致情况,而且还会出现 #include "stdafx.h"/ #include "pch.h" 预处理器头文件(如果有)包含顺序被调整到其他头文件后面,这是问题,很严重。

解决

项目根目录下配置一个 .clang-format 格式化配置:

# 基础风格,建议基于 LLVM
BasedOnStyle: LLVM

# 1. 缩进使用制表符,宽度为 4
UseTab: Always
IndentWidth: 4
TabWidth: 4

# 2. 所有花括号必须换行 (Allman 风格)
BreakBeforeBraces: Allman

# 3. if 语句块即便只有一行,也要强制换行且使用 {} 包裹
AllowShortBlocksOnASingleLine: Never
AllowShortIfStatementsOnASingleLine: Never

# 5. 禁止短函数折叠为单行
AllowShortFunctionsOnASingleLine: None

# 4. namespace 内部全体缩进
NamespaceIndentation: All

# 6. 访问修饰符(public/private/protected)回退一个完整缩进级别
AccessModifierOffset: -4

# 7. #include 排序:开启排序,但保证 pch.h 永远在最前
SortIncludes: CaseSensitive
IncludeCategories:
  # 预编译头 pch.h — 最高优先级(数字最小)
  - Regex: '"pch\.h"'
    Priority: -1
  - Regex: '"stdafx\.h"'
    Priority: -1
  # 系统 / 第三方头文件
  - Regex: "<.*>"
    Priority: 1
  # 其他项目内头文件
  - Regex: '".*"'
    Priority: 2

# 其他常用建议优化
ColumnLimit: 100