C语言编程规范3: 可读性

来源:互联网 发布:电影种子搜索软件 编辑:程序博客网 时间:2024/05/16 12:08

         我们不仅要写高效的代码,还要写可读性很强的代码,随着我们所开发系统的复杂性的不断提高,这就要求我们所写的程序具有3个特性:1、可读性;2、可多人协作性;3、可移植性。但是,像我们这样电子专业毕业的学生,都没有接受过“软件设计方法论”、“操作系统原理”等课程的深入训练,这就使我们所写的程序与软件专业工程师所写的程序具有较大的差距,这些问题使得公司在程序的代码维护上面临着诸多的困难。这种窘境需要打破!

    本文从“C语言编程规范”着手,着重讲授如何书写规范性的C语言程序代码,文中所举实例,均为知名公司所采用的C语言规范。按照本系列课程严格要求自己规范性编写C语言代码,可使得我们书写的程序给人耳目一新的感觉,易于阅读,并避免潜在的逻辑性错误的发生。

    可读性:
    A、注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。
    说明:防止阅读程序时产生误解,防止因默认的优先级与设计思想不符而导致程序出错。
示例:下列语句中的表达式
word = (high << 8) | low (1)
if ((a | b) && (a & c))  (2)
if ((a | b) < (c & d))   (3)
如果书写为
high << 8 | low
a | b && a & c
a | b < c & d
由于
high << 8 | low = ( high << 8) | low
a | b && a & c = (a | b) && (a & c)
(1)(2)不会出错,但语句不易理解;
a | b < c & d = a | (b < c) & d,(3)造成了判断条件出错。

    B、避免使用不易理解的数字,用有意义的标识来替代。涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的枚举或宏来代替。
示例:如下的程序可读性差。
if (Trunk[index].trunk_state == 0)
{
    Trunk[index].trunk_state = 1;
    ... // program code
}
应改为如下形式。
#define TRUNK_IDLE 0
#define TRUNK_BUSY 1
if (Trunk[index].trunk_state == TRUNK_IDLE)
{
    Trunk[index].trunk_state = TRUNK_BUSY;
    ... // program code
}
 
C、源程序中关系较为紧密的代码应尽可能相邻。
说明:便于程序阅读和查找。 示例:以下代码布局不太合理。
rect.length = 10;
char_poi = str;
rect.width = 5;
若按如下形式书写,可能更清晰一些。
rect.length = 10;
rect.width = 5;     // 矩形的长与宽关系较密切,放在一起。
char_poi = str;
 
D、不要使用难懂的技巧性很高的语句,除非很有必要时
说明:高技巧语句不等于高效率的程序,实际上程序的效率关键在于算法。
示例:如下表达式,考虑不周就可能出问题,也较难理解。
* stat_poi ++ += 1;
* ++ stat_poi += 1;
应分别改为如下。
*stat_poi += 1;
stat_poi++;         // 此二语句功能相当于“ * stat_poi ++ += 1; ”
++ stat_poi;
*stat_poi += 1;     // 此二语句功能相当于“ * ++ stat_poi += 1; ”


原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163 
CSDN:http://blog.csdn.net/qingwufeiyang12346  
0 0
原创粉丝点击