2.2 编码规范

编码是一种艺术,它不仅仅是为了完成某一个特定的功能而堆砌的一些英文字符,而且是编程人员综合素质的体现。程序的版式虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序风格的重要构成因素。

2.2.1 版式要求

程序版式的具体要求如下:

(1)程序结构清晰,简单易懂,单个函数的程序行数不得超过100行。

(2)每个源文件,都有头文件说明。

(3)程序块要采用缩进风格编写,每次缩进一个Tab键。

(4)空行起着分隔程序段落的作用。空行得体将使程序的布局更加清晰。空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,但是值得的。所以不要舍不得用空行。相对独立的程序块之间、变量说明之后必须加空行。

(5)一行代码只做一件事情。如只定一个变量或只写一条语句,这样的代码容易阅读,并且方便于写注释。

(6)程序的分界符“{”和“}”应独占一行并且位于同一列,同时要与引用的语句左对齐。

(7)“{ }”之内的代码块在“{”右边数格处左对齐。

(8)if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加“{ }”。这样可以防止书写失误。

(9)代码行不要过长,否则眼睛看不过来,也不便于打印。

2.2.2 命名规则

没有一种命名规则可以让所有的程序员赞同。程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败攸关”的事,所以不要花太多精力试图发明世界上最好的命名规则。而应制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。

比较著名的命名规则当推Microsoft公司的“匈牙利”法,该命名规则的主要思想是在变量和函数名中加入前缀以增进人们对程序的理解。例如所有的字符变量均以“ch”为前缀,若是指针变量则追加前缀“p”。如果一个变量由“ppch”开头,则表明它是指向字符指针的指针。

以下给出一些Windows应用软件开发的命名规则:

(1)变量和参数用小写字母开头的单词组合而成。

(2)常量全用大写的字母,用下划线分割单词。

(3)静态变量前加前缀s_(表示static)。

(4)如果不得已需要全局变量,则使全局变量加前缀g_(表示global)。

(5)为了防止某一软件库中的一些标识符和其他软件库中的标识符冲突,可以为各种标识符加上能反映软件性质的前缀。例如三维图形标准OpenGL的所有库函数均以gl开头,所有常量(或宏定义)均以GL开头。

2.2.3 正确性与容错要求

C语言编码时的正确性与容错要求如下:

(1)程序首先是正确的,其次是优美。

(2)无法证明你的程序没有错误,因此在编写完一段程序后。应先回头检查。

(3)改一个错误时可能产生新的错误,因此在修改前首先要考虑对其他程序的影响。

(4)所有变量在调用前必须被初始化。

(5)对所有的用户输入,必须进行合法性检查。

(6)不要比较浮点数是否相等。

例如:

    10.0*0.1 == 1.0     //不可靠