Clang与Clang-Format的了解

说Clang 之前必须先说GCC。


GCC,即GNU(Gnu's Not Unix)编译器套装(GNU Compiler Collection,GCC),是GNU开发的一套编程语言编译器。它是以GPL及LGPL许可证所发行的自由软件,也是GNU项目的关键部分。GCC,特别是其中的C语言编译器,也常被认为是跨平台编译器的事实标准。


Clang是一个C、C++、Objective-C语言的轻量级编译器。它采用了底层虚拟机(LLVM)作为其后端。它的目标是提供一个GNU编译器套装(GCC)的替代品。比较GCC,它的优势是编译速度快,内存占用小,兼容GCC。同时可满足多样的客户需求(代码重构,动态分析,代码生成等),允许集成到各种IDE中。

当然实际工作中也没少用微软的VC编译器,即MSVC,但它的名气明显比不过Clang 和GCC,此处跳过,不用介绍了。

回到 Clang 的安装目录,bin目录下有个工具叫 clang-format.exe,它可以用来格式化代码,统一我们团队的代码格式。而里面的配置文件.clang-format非常重要,说明如下:

# 语言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto
Language:        Cpp
# 访问说明符(public、private等)的偏移
AccessModifierOffset: -4
# 连续赋值时,等号对齐
AlignConsecutiveAssignments: true
# define 换行时反斜杠位置:左对齐
AlignEscapedNewlines: Left
# 连续代码的尾部注释对齐
AlignTrailingComments: true
# 允许短代码块放在同一行 if 1 { return; }
AllowShortBlocksOnASingleLine: false
# 允许短的case标签放在同一行
AllowShortCaseLabelsOnASingleLine: false
# 允许短的函数放在同一行
AllowShortFunctionsOnASingleLine: All
# 允许短的if语句保持在同一行
AllowShortIfStatementsOnASingleLine: false
# 允许短的循环保持在同一行
AllowShortLoopsOnASingleLine: false
# 总是在返回类型后换行
AlwaysBreakAfterReturnType: None
# 总是在多行string字面量前换行
AlwaysBreakBeforeMultilineS
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值