You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LLVM风格时clang-format如何移除函数声明中')'与'{'间的空格

clang-format 去除函数右括号与起始大括号间空格的配置方案

完全不需要修改clang-format源码,对应功能由官方原生支持,配置项容易因版本迭代的层级调整被忽略,按以下步骤配置即可实现目标效果。

标准配置写法

在项目根目录创建.clang-format文件,基于LLVM预设做最小化调整:

# 复用LLVM风格的全部默认规则
BasedOnStyle: LLVM
# 移除函数声明/定义处右括号与起始大括号之间的空格
SpaceBeforeFunctionOpenBrace: false

低版本适配

如果使用的clang-format版本低于14.0,顶层不存在SpaceBeforeFunctionOpenBrace配置项,可改用嵌套子项实现相同效果:

BasedOnStyle: LLVM
SpaceBeforeParensOptions:
  AfterFunctionDeclaration: Never
  AfterFunctionDefinition: Never

配置说明:上述规则仅修改函数相关的空格逻辑,不会影响if、for、while等流程控制语句的括号与大括号间距,和LLVM默认风格保持一致。

效果校验

执行给出的格式化测试命令,对示例输入的输出将完全匹配预期:

void main(){
  printf("Hello, world!");
  return;
}

常见排查误区

  • 不要错配SpaceBeforeBraces项,该配置仅控制大括号的换行规则,和括号、大括号间的间距无关,调整后无法达到目标效果。
  • 上述配置为最小改动实现,不需要修改其他LLVM默认规则,就能完整保留原有偏好的风格。

内容的提问来源于stack exchange,提问作者Hikaru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 17:45:04