如何提高C++代码质量

一般来说,人员的技术水平和代码质量的高低息息相关,但是人员技术水平的提高不是一朝一夕能够完成的。那么除此之外,我们有什么方法能够短时间提高团队的代码质量呢。从我过往的经验来说,有两个东西时间投入成本不大,但是对代码质量提高非常有作用,他们就是严格的编译条件以及第三方的检测工具。

严格的编译条件

目前编译器非常智能,很多危险或者异常的语法都能够被编译器捕获到,所以我们一定要善用编译器的分析功能,让编译器对我们的代码进下严格的检查。由于我一般使用Linux系统,编译器就选择了GCC,编译工具使用CMake,下面我就列举一下这套系统下常用好用的编译选项。

GCC-CMake编译选项

set(CXX_FLAGS
 #-DVALGRIND
 -DCHECK_PTHREAD_RETURN_VALUE
 -D_FILE_OFFSET_BITS=64
 -fPIC
 -Wall
 -Wextra
 -Werror
 -Wconversion
 -Wold-style-cast
 -Woverloaded-virtual
 -Wpointer-arith
 -Wshadow
 -Wwrite-strings
 -Wno-unused-parameter
 -Wno-error=deprecated-declarations
 -Wno-deprecated-declarations
 -march=native
 #-MMD
 -std=c++14
 -rdynamic
 )

基本的思路就是将绝大部分的编译警告都打开,然后将warning当做error处理,一旦代码中出现了相关的问题,编译将会失败。

第三方的检测工具

目前有非常多的好用的第三方的工具能够对我们的代码进行动静态的检查。

静态检查工具

静态检查工具目前我主要在用Cppcheck和SourceMonitor。Cppcheck主要是对代码的语法进行的检查,他能够检查出一些编译器检查不出来的问题。SourceMonitor主要是对代码的复杂度进行的检查,能够一定程度上反应你函数的实现是否合理。

动态检查工具

动态检查工具我目前主要在用Valgrind,他有很多功能,但是一般我主要使用他的内存检查功能,他可以检查代码里的内存泄露问题。内存泄露对C++而言是个老大难的问题,虽然智能指针的出现一定程度上缓解了这个问题,但是很多时候还是难以避免。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值