程序的书写规则(程序的编码规范)
对于软件开发人员来说,除了保证程序运行的正确性和提高代码的 运行效率之外,规
范风格的编码会对软件的升级、修改、维护带来极大的方便性,也保证程序员不会陷
入“代码泥潭”中无法自拔。开发一个 成熟的软件产品,除了有详细丰富的开发文档
之外,必须在编写代码的时候就有条不紊,细致严谨。
以下的编码规范包含了程序排版、注 释、命名、可读性、变量、程序效率、质量
保证、代码编译、代码测试和版本控制等注意事项。
一、排版:
1.关键词和 操作符之间加适当的空格。
2.相对独立的程序块与块之间加空行
3.较长的语句、表达式等要分成多行书写。
4. 划分出的新行要进行适应的缩进,使排版整齐,语句可读。
5.长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
6.循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。
7.若函数或过程中的参数较长,则要进行适当的划分。
8.不允许把多个短语句写在一行中,即一行只写一条语句。
9.函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格。
10.C/C++语言是用大括号‘{’和‘}’界定一段程序块的,编写程序块时‘{’和
‘}’应各独占一行并且位于同一 列,同时与引用它们的语句左对齐。在函数体
的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、
switch、case语句中的程序都要采用如上的缩进方式。
二、注释
1.注释要简单明了。
2.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。
3.在必要的地方注释,注释量要适中。注释的内容要清楚、明了,含义准确,防止
注释二义性。保持注释与其描述的代码相邻,即注释的就近 原则。
4.对代码的注释应放在其上方相邻位置,不可放在下面。
5.对数据结构的注释应放在其上方相邻位置,不可放在下面;对 结构中的每个域
的注释应放在此域的右方;同一结构中不同域的注释要对齐。
6.变量、常量的注释应放在其上方相邻位置或右 方。
7.全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它
以及存取时注意事项等的说明。
8.在每个源文件的头部要有必要的注释信息,包括:文件名;版本号;作者;生成
日期;模块功能描述(如功能、主要算法、内部各部分之间 的关系、该文件与其
它文件关系等);主要函数或过程清单及本文件历史修改记录等。
9.在每个函数或过程的前面要有必要的注 释信息,包括:函数或过程名称;功能描
述;输入、输出及返回值说明;调用关系及被调用关系说明等。
三、命名
1.较短的单词可通过去掉“元音”形成缩写;
2.较长的单词可取单词的头几发符的优先级,并用括号明确表 达式的操作顺序,避
免使用默认优先级。
3.使用匈牙利表示法
四、可读性
1.避免使用不易理解的数字,用有意义的标识来替代。
2.不要使用难懂的技巧性很高的语句。
3.源程序中关系较为紧密的代码应尽可能相邻。
五、变量
1.去掉没必要的公共变量。
2.构造仅有一个模块或函数可以修改、创建,而其余有关模块或函数只访问的公 共
变量,防止多个不同模块或函数都可以修改、创建同一公共变量的现象。
3.仔细定义并明确公共变量的含义、作用、取值范围 及公共变量间的关系。
4.明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创建等。
5.当向公共变量传递数 据时,要十分小心,防止赋与不合理的值或越界等现象发生。
6.防止局部变量与公共变量同名。
7.仔细设计结构中元素的布局与 排列顺序,使结构容易理解、节省占用空间,并减
少引起误用现象。
8.结构的设计要尽量考虑向前兼容和以后的版本升级,并为 某些未来可能的应用保
留余地(如预留一些空间等)。
9.留心具体语言及编译器处理不同数据类型的原则及有关细节。
10.严禁使用未经初始化的变量。声明变量的同时对变量进行初始化。
11.编程时,要注意数据类型的强制转换。
六、函数、过程
1.函数的规模尽量限制在200行以内。
2.一个函数最好仅完成一件功能。
3.为简 单功能编写函数。
4.函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。
5.尽量不要编写依赖于其他 函数内部实现的函数。
6.避免设计多参数函数,不使用的参数从接口中去掉。
7.用注释详细说明每个参数的作用、取值范围及参 数间的关系。
8.检查函数所有参数输入的有效性。
9.检查函数所有非参数输入的有效性,如数据文件、公共变量等。
10.函数名应准确描述函数的功能。
11.避免使用无意义或含义不清的动词为函数命名
12.函数的返回值要清楚、明了,让 使用者不容易忽视错误情况。
13.明确函数功能,精确(而不是近似)地实现函数设计。
14.减少函数本身或函数间的递归调 用。
15.编写可重入函数时,若使用全局变量,则应通过关中断、
程序书写规则编码规 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)