个人编码模板

个人编码模板

1.程序块要采用缩进风格编写,缩进的空格数为4个。

 

2.相对独立的程序块之间、变量说明之后必须加空行。

示例:如下例子不符合规范。

if (!valid_ni(ni))

{

    ... // program code

}

repssn_ind = ssn_data[index].repssn_index;

repssn_ni  = ssn_data[index].ni;

 

应如下书写

if (!valid_ni(ni))

{

    ... // program code

}

 

repssn_ind = ssn_data[index].repssn_index;

repssn_ni  = ssn_data[index].ni;

 

3.较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。

示例:

perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN

                          + STAT_SIZE_PER_FRAM * sizeof( _UL );

 

act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied

              = stat_poi[index].occupied;

 

4.不允许把多个短语句写在一行中,即一行只写一条语句。

示例:如下例子不符合规范。

rect.length = 0;  rect.width = 0;

 

应如下书写

rect.length = 0;

rect.width  = 0;

 

5.if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。

示例:如下例子不符合规范。

if (pUserCR == NULL) return;

 

应如下书写:

if (pUserCR == NULL)

{

    return;

}

 

5.一般情况下,源程序有效注释量必须在20%以上。

6.说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。

 

7.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。

 

8.注释的内容要清楚、明了,含义准确,防止注释二义性。

 

9.标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。

说明:较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写。

示例:如下单词的缩写能够被大家基本认可。

temp 可缩写为  tmp  ;

flag 可缩写为  flg  ;

statistic 可缩写为  stat ;

increment 可缩写为  inc  ;

message 可缩写为  msg  ;

 

10.源程序中关系较为紧密的代码应尽可能相邻。

说明:便于程序阅读和查找。

示例:以下代码布局不太合理。

rect.length = 10;

char_poi = str;

rect.width = 5;

 

若按如下形式书写,可能更清晰一些。

rect.length = 10;

rect.width = 5; // 矩形的长与宽关系较密切,放在一起。

char_poi = str;

 

11.细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间,并减少引起误用现象。

 

12.函数的规模尽量限制在200行以内。

说明:不包括注释和空格行。

 

13.一个函数仅完成一件功能。

 

14.编程时要经常注意代码的效率。

说明:代码效率分为全局效率、局部效率、时间效率及空间效率。全局效率是站在整个系统的角度上的系统效率;局部效率是站在模块或函数角度上的效率;时间效率是程序处理输入任务所需的时间长短;空间效率是程序所需内存空间,如机器代码空间大小、数据空间大小、栈空间大小等。

 

15.在保证软件系统的正确性、稳定性、可读性及可测性的前提下,提高代码效率。

 

16.认真处理程序所能遇到的各种出错情况。

 

17.有可能的话,if语句尽量加上else分支,对没有else分支的语句要小心对待;switch语句必须有default分支。

 

18.不要滥用goto语句。

说明:goto语句会破坏程序的结构性,所以除非确实需要,最好不使用goto语句。

 

19.循环体内工作量最小化。

说明:应仔细考虑循环体内的语句是否可以放在循环体之外,使循环体内工作量最小,从而提高程序的时间效率。

示例:如下代码效率不高。

for (ind = 0; ind < MAX_ADD_NUMBER; ind++)

{

    sum += ind;

    back_sum = sum; /* backup sum */

}

 

语句“back_sum = sum;”完全可以放在for语句之后,如下。

for (ind = 0; ind < MAX_ADD_NUMBER; ind++)

{

    sum += ind;

}

back_sum  = sum; /* backup sum */

 

20.仔细分析有关算法,并进行优化。

 

21.代码质量保证优先原则

  1)正确性,指程序要实现设计要求的功能。

  2)稳定性、安全性,指程序稳定、可靠、安全。

  3)可测试性,指程序要具有良好的可测试性。

  4)规范/可读性,指程序书写风格、命名规则等要符合规范。

  5)全局效率,指软件系统的整体效率。

  6)局部效率,指某个模块/子模块/函数的本身效率。

  7)个人表达方式/个人方便性,指个人编程习惯。

 

22.编程时,要防止差1错误。

说明:此类错误一般是由于把“<=”误写成“<”或“>=”误写成“>”等造成的,由此引起的后果,很多情况下是很严重的,所以编程时,一定要在这些地方小心。当编完程序后,应对这些操作符进行彻底检查。

 

23.用宏定义表达式时,要使用完备的括号。

示例:如下定义的宏都存在一定的风险。

#define RECTANGLE_AREA( a, b ) a * b

#define RECTANGLE_AREA( a, b ) (a * b)

#define RECTANGLE_AREA( a, b ) (a) * (b)

正确的定义应为:

#define RECTANGLE_AREA( a, b ) ((a) * (b))

 

24.发现错误立即修改,并且要记录下来。

 

25.坚持在编码阶段就对代码进行彻底的单元测试,不要等以后的测试工作来发现问题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值