作为一个程序员,努力写好代码,提升代码质量和效率是我们必须追求的,或者说是不断追求的,上一篇文章提到算是入门,是基本大多数人都会犯的错误。今天我们再来聊一聊深入一点的原因,更高效的避免我们犯错误,或者一旦犯错,我们可以第一时间改掉。
1.指针变量是否为空值的判断。
我们很喜欢用 "==" 或 ‘’!=‘’与NULL比较,毋庸置疑的,这是最正确的写法。但是越来越多的程序员喜欢简写了,这就埋下了"伏笔",空指针的错误,可是最烦人的,也是最不容易察觉的。
指针变量的零值是“空”,记为"NULL",尽管NULL的值和0相同,但是两者意义不同,大家都知道c/c++是跨平台最强的语言,有些平台并不将0作为NULL,而是用其他地址,一旦等价了0和NULL,真的就是灾难性的结果。
假设指针变量的名字为p,判断指针是否为空的标准if语句如下:
顺便提一下,有时候我们可能看到if(NULL == p)这样的格式,这样的写法更健康,是程序员为了防止将if(p == NULL)误写成 if(p = NULL),这样做的好处就是,如果写成后者编译器会报错,编译器不允许NULL被赋值。
2.基本语句里面,for循环的使用概率也很高,while语句一次,do语句用的最少了。这里呢,简单提一下循环体的效率。
在多重循环里,建议优先把最长的循环放在最内层,最短的循环放在最外层,这样做的好处是,减少CPU跨切循环层的次数,比如下面这样:
顺便提一下,尽量不要在for循环内部修改循环变量,以防止for循环失去控制。
3.大家在优秀程序员写代码时,都会发现,人家会用很多宏定义或者用const定义很多常量来代表字符串或者数字,有些人觉得很多余,那是因为他们根本不懂这样写的好处,那我们不放先列举一些坏处:
程序的可读性差,代码中莫名出现一个数字,比如 if(count > 100),不懂你思想的人,不禁会问,为什么要小于100,100是怎么规定的?那你是不是加个注释说明下,恐怕这才是多此一举。更何况,如果时间一长,下代码的人都会忘记100是什么意思,从何而来,是不是快要疯掉了?
通常一个特殊的数字,不会只在程序中的某一处使用,在一个项目中,如果用了很多这个特殊的数字,一旦要修改,你是不是要面临着,逐个修改,而且还会担心是否有遗漏。
同样如下,数字便于书写,如果是一个字符串,每次都写一遍,是不是可烦,或许会有人说,crtl+c和ctrl+v啊,那我就只能呵呵哒了。。
综上,我们需要使用常量来代替在程序中多次出现的数字或者字符串,而且,命名不要有二义性,并且还要很直观的说清楚该变量的含义。
注意我的书写,是不是相对漂亮一些,格式整齐代码看起来都清爽一些。希望读者可以借鉴。另外,尽量把相同类型的常亮放在同一个头文件里进行封装,这样更便于后续优化和维护代码。
每天进步一点点,每天消化一点点。今天先介绍这么多,后续我会持续更新,有更多想法的小伙伴,欢迎在下方我们一起交流。
