您好,欢迎访问三七文档
XX产品研究部文档编号产品版本密级开发适用共页收文:XX产品研究部软件开发人员软件开发代码规范(仅供内部使用)拟制:周超日期:2011-5-11审核:日期:核准:日期:签发:日期:文档版本:V0.11目录第一章原则..................................................................................7第二章排版..................................................................................82.1空行....................................................................................82.2代码行...............................................................................102.3代码行内的空格................................................................112.4对齐缩进...........................................................................132.5长行拆分...........................................................................16第三章注释................................................................................193.1通用规则...........................................................................193.2文件注释...........................................................................203.3函数注释...........................................................................213.4数据注释...........................................................................223.5代码注释...........................................................................24第四章命名................................................................................294.1通用命名规则....................................................................294.2文件命名...........................................................................304.3类型命名...........................................................................304.4变量命名...........................................................................324.5常量命名...........................................................................334.6函数命名...........................................................................344.7枚举命名...........................................................................344.8宏命名...............................................................................35第五章杂项................................................................................36文件修改记录修改日期版本修改页码、章节、条款修改描述作者2011-4-290.1创建初稿周超2011-5-110.113.3数据注释4.3类型命名4.4变量命名4.6函数命名1)修改3.4数据注释【规则3-4-3】全局变量注释例子2)在“4.3类型命名”、“4.4变量命名”、“4.6函数命名”中,增加对前缀、关键缩写词等可以适当全部大写的处理。周超第一章原则本文档的目的是提供一个公共的编码规范。这个规范详细阐述在编码时要怎样写、不要怎样写,旨在提高代码的可读性、可维护性,使代码易于管理,使所有人可以集中精力去实现内容,而非处理各种复杂的表现形式。使代码易于管理的方法之一是增强代码一致性,让别人可以读懂你的代码是很重要的,保持统一编程风格意味着可以轻松根据“模式匹配”规则推断各种符号的含义。创建通用的、必需的习惯用语和模式可以使代码更加容易理解。虽然在某些情况下改变一些编程风格可能会是好的选择,但我们还是应该遵循一致性原则,尽量不这样去做。关键在于保持一致。第二章排版2.1空行【规则2-1-1】在每个函数、结构体、枚举定义结束之后都要加空行。【规则2-1-2】在一个函数体内,逻辑密切相关的语句之间不加空行,其它地方应加空行分隔。structst1{…};//空行enum{…};//空行//空行while(condition){statement1;//空行if(condition){statement2;}else{voidFunction1(…){…}//空行voidFunction2(…){…}statement3;}//空行statement4;}函数之间的空行函数内部的空行【规则2-1-3】相对独立的程序块之间、变量说明之后必须加空行。if(!is_lock_card_succ){...//programcode}GetLockPhoneInfo(&st_lock_phone_info);if(!is_lock_card_succ){...//programcode}//空格GetLockPhoneInfo(&st_lock_phone_info);不规范代码规范代码2.2代码行【规则2-2-1】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。【规则2-2-2】if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。intwidth,height,depth;//宽度高度深度intwidth;//宽度intheight;//高度intdepth;//深度X=a+b;y=c+d;z=e+f;x=a+b;y=c+d;z=e+f;if(widthheight)dosomething();if(widthheight){dosomething();}for(initialization;condition;update)dosomething();other();for(initialization;condition;update){dosomething();}//空行other();不规范代码规范代码2.3代码行内的空格说明:空格的目的在于更清晰的代码。【规则2-3-1】关键字之后要留空格。const、static等关键字之后至少要留一个空格,否则无法辨析关键字;if、for、while、switch等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。【规则2-3-2】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。【规则2-3-3】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。【规则2-3-4】‘,’之后要留空格,如Function(x,y,z)。如果‘;’不是一行的结束符号,其后要留空格,如for(initialization;condition;update)。【规则2-3-5】赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=”“=”、“=”、“+”、“*”、“%”、“&&”、“||”、“”,“^”等二元操作符的前后应当加一个空格。【规则2-3-6】一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。【规则2-3-7】象“[]”、“.”、“-”这类操作符前后不加空格。【建议2-3-1】对于表达式比较长的for语句和if语句,为了紧凑起见可以适当地去掉一些空格,如for(i=0;i10;i++)和if((a=b)&&(c=d))voidFunc1(intx,inty,intz);voidFunc1(intx,inty,intz);if(year=2000)if(year=2000)if((a=b)&&(c=d))if((a=b)&&(c=d))if(a=b&&c=d)for(i=0;i10;i++)for(i=0;i10;i++)for(i=0;i10;i++)x=ab?a:b;x=ab?a:b;i++;int*x=&y;i++;int*x=&y;array[5]=0;a.Function();b-Function();array[5]=0;a.Function();b-Function();良好风格不良风格2.4对齐缩进【规则2-4-1】程序块要采用缩进风格编写。【规则2-4-2】对齐使用TAB键,TAB键宽度设置为4个空格。说明:应注意使用不同编辑器时,TAB键设置不同造成的排版不同;应注意某些编辑器在识别、显示TAB键上存在问题;最终排版应以在项目的主代码编辑器(如VC、SourceInsight等)中显示一致统一、整洁清晰为准。SourceInsight中设置:Options-DoucumentOptions-“TabWidth:4”【规则2-4-3】函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。【规则2-4-4】程序块的分界符(如‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。for(...){...//programcode}for(...){...//programcode}if(...){...//programcode}if(...){...//programcode}voidexample_fun(void){...//programcode}voidexample_fun(void){...//programcode}不规范代码规范代码【规则2-4-5】预处理指令不需要缩进,总是从行首开始。即使预处理指令位于缩进代码块中,指令也应从行首开始。//良好风格:预处理指令均从行首开始if(lopsided_score){#ifDISASTER_
本文标题:软件开发代码规范
链接地址:https://www.777doc.com/doc-3370282 .html