C++ 代码编写常用规范记录

根据代码review时,大家给的commonts中的常见问题做此记录,后续编写代码时需要自行check是否有以下问题

一、参数合理性check

函数输入参数,如指针是否为空的check;配置文件中设置的参数是否合法,是否超过限制等

二、if 判断的规范

推荐将常量写在前面,这样如果不小心写成 1 = a 后编译器会报错

如果将 a == 1不小心写成 a=1后,编译器不会报错,不容易发现问题

if (1 == a)
// if (1 == a)

三、数据类型定义

推荐使用自己项目中用typedef 定义好的 int32_t float32_t float64_t来定义数据,这样可以保证在不同的系统中,int32_t都是32位的类型了,以此类推(具体实现原理是定义的头文件中还包含了对这段代码进行预编译,会先判断int 为多少位,根据系统进行相应的定义)

int32_t  float32_t float64_t
// int  float 

四、for语句中使用 ++i的形式

在for 循环for语句中不管使用++i还是i++,对最终的计算结果其实是没有区别的,++i 的 形式效率更高:i++需要一个暂时变量,然后将i加1后,返回的是暂时变量。而++i就是自增后返回i,所以在空间损耗上,i++要略高于++i,因此,在不影响代码逻辑的前提下,要尽量使用++i

【注意】是for语句中,其他位置需要具体check这两种对结果是否有影响,再决定是否使用++i

for(int32_t i = 0; i < 10; ++i)
// for(int32_t i = 0; i < 10; i++)

五、合理和不合理的空格、空行

VScode可以通过设置trim trailing whitespace来在保存文件时自动删除多余的空格或tab

六、占内存较大的数据尽量避免数据拷贝

指针、引用、或直接开始给目前变量赋值等

七、const使用

函数中不需要修改的变量等,加上const

八、static的使用

每次函数调用时都需要定义一个较大的值,为了放置每次都给这个变量分配内存,比较耗时,可以给变量前加 static

九、代码中尽量不要出现自己定义的直接的数值

if(a > min_value) // yes
if(a > 20) // no: 类似的数值需要配置成参数

# define LIST_NUM (100)
int32_t a[LIST_NUM];  // yes
int a[100]; // no: 这种参数需要写成上面的宏定义

十、关于换行

代码修改:换行时一般使用两个tab,如果是if句中为了使得判断条件看起来更清晰,可以不用遵循这个原则

十一、每行代码长度

长度不要超过80或者100个字符,可以在VS code中设置参考线

附录:VS code插件

1、显示代码更改人和更改时间:  GitLens — Git supercharged  插件

你可能感兴趣的:(代码规范)