代码编制中,一部分问题是程序员自身造成的。比如公司办公室的窗户,晚上下班后常有人忘了关。解决措施一是多加强培训,二是罚款,但人们仍然是容易忘。行政部门在办公室门口的位置,长期摆放一块指示牌,或是活动的,或是贴在门把手上,让每位进出的人都能被提示到,因为人的健忘或粗心而导致漏关窗的问题可被避免掉。程序编制中也是如此。
尽量将语句简单化,代码简单化、代码数据结构简单化、代码逻辑简单化,简单的自然就不容易错。再一个是可视化,将可能出问题的地方,用特殊的色彩、字体、特殊符号、布局方式,时刻提醒程序员在调用函数的时候、引用变量的时候、编程习惯上,将隐性问题显性化,避免人为失误。
例1:函数被调用时,容易出错的地方是形参的赋值,形参的个数、次序、数据类型的匹配都是易出错点。
解决措施有二:一是减少形参的数量,形参个数越少,赋值就简单,出错概率就小;二是加比较突出的注释,注释语句用色彩、大小、加黑、斜体等明显标志类方式,提醒调用者注意,减少程序员粗心导致的出错;三是测试和设计规范检查上,将此项的检查列入检查清单,通过项目组外部审查人员重点检查潜在隐患问题。
例2:对于程序中会多次出现的同一物理量参数,如系数π,取3.1415926,在程序中会多次出现,快速录入程序过程中,笔误在所难免,就算错了,编译过程也检查不出来。类似的这种情况,最好使用宏定义的方式实现。
宏定义是C提供的三种预处理功能的其中一种,宏定义又称为宏代换、宏替换,简称“宏”。格式为:
#define 标识符 字符串
“宏”概念的关键是“换”,即在对相关命令或语句的含义和功能作具体分析之前就要换,如:
#define PI 3.1415926
宏定义在编译过程中的执行过程,是先强行将程序中的宏名字用宏定义中的式子或数值机械地等同替换,类似于Microsoft Word中的替换功能,然后再进行编译。本例中则是在编译预处理时,就先将程序中出现的PI先全部换成3.1415926这个常数,然后再进行编译。
这种做法的好处是避免在键盘输入程序时,多次重复敲入同一数值,容易出错,而且该错误编译器还查不出来,还比较分散,比较难查找。通过宏,在整个程序中只出现一次常数,一是细心点就不易错,即使错了,一次性就能检查到也方便。
用户1678053 2015-4-7 19:42