怎么写出优雅的C++代码(C++,编程语言)

时间:2024-04-29 13:36:00 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    %E6%80%8E%E4%B9%88%E5%86%99%E5%87%BA%E4%BC%98%E9%9B%85%E7%9A%84C%2B%2B%E4%BB%A3%E7%A0%81

工欲善其事必先利其器,优雅的代码离不开静态代码检查工具,大家可能平时使用较多的是cppcheck,但今天我想跟大家分享另一个静态代码检查工具clang-tidy。

不同于cppcheck使用正则表达式进行静态代码分析,clang-tidy是基于语法分析树的静态代码检查工具,虽然它的速度比正则表达式慢一些,但是它检查的更准确、全面,而且不仅可以做静态检查,还可以做一些修复工作,自行添加一些自定义检查规则。

话不多说,上代码:

这里有隐式类型转换,可以使用clang-tidy来检测:

这里也许你有疑问了,这不就是一个普通的编译警告嘛,正常使用编译器也可以检查出来,那再看一段代码:

我们都知道在C++中应该更多的使用nullptr而不是NULL,这里使用了NULL而不是使用nullptr,可能我们在开发过程中没有注意到这种用法,所以clang-tidy派上了用场:

再举一个例子:

这里可能我们乍一看没有任何问题,其实在C++11里派生类继承父类,重写了某些函数时最好加上override关键字,通过clang-tidy还是可以检测出来:

该工具还可以检查代码是否符合编码规范,例如Google编码规范等,看这段头文件相关代码:

这里其实有一点点问题,头文件引用顺序不满足编码规范,这里其实clang-format都可以检测出来,但clang-tidy也可以检测出来,通过-fix还可以进行自动修复:

它还可以检测隐藏的内存泄漏:

这是使用clang-tidy的检测结果:

clang-tidy还有很多高端功能,大概可以检测出250种问题,大体主要分为几大类:

abseil:检测abseil库的相关问题

android:检测Android相关问题

boost:检测boost库的相关问题

cert:检测CERT的代码规范

cpp-core-guidelines:检测是否违反cpp-core-guidelines

google:检测是否违反google编码规范

llvm:检测是否违反llvm编码规范

performance:检测性能相关的问题

readability:检测与可读性相关,但又不属于某些编码规范的问题

modernize:检测是否使用现代C++11相关的代码问题

而且适用于Windows/Linux/MacOS多平台,还支持命令行,CLion/VSCode/VSStudio插件等,检测规则还可以定制,重要的是免费开源,快去用起来吧,写出优雅的C++代码~

本文:怎么写出优雅的C++代码的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:如何用Python理解用于信号同步的CAZAC序列下一篇:

6 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18