⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 程序的书写规则(程序的编码规范).htm

📁 编程规范大全
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<TABLE style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" cellSpacing=1 cellPadding=3 width="100%" bgColor=#cccccc border=0>
<TBODY>
<TR bgColor=#f8f8f8>
<TD><STRONG><FONT color=#ff0000>酷贴推荐 <FONT color=#ff0000>[</FONT><A href="http://blog.21ic.org/more.asp?name=cxjr&amp;id=7437" target=_blank><U><FONT color=#ff0000>更多…… </FONT></U></A><FONT color=#ff0000>]</FONT></FONT></STRONG></TD></TR>
<TR bgColor=#ffffff>
<TD>
<P align=left>
<TABLE borderColor=#cccccc cellSpacing=2 cellPadding=3 width="100%" bgColor=#ffffff border=1>
<TBODY>
<TR>
<TD>
<P align=center>&nbsp;[<A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=16591"><U><FONT style="BACKGROUND-COLOR: #ffff00" color=#ff0000>岁月如歌——记匠人的百宝箱博客开通一周年</FONT></U></A>] [<A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=17379"><U><FONT color=#0000ff>事件驅動觀念</FONT></U></A>] [<A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=17377"><U><FONT color=#0000ff>单片机程序设计中运用事件驱动机制</FONT></U></A>]</P></TD>
<TR>
<TD>
<P align=center>[<A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=18941"><U><FONT color=#0000ff>计算机族必喝的健康饮料</FONT></U></A>] [<A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=18714"><U><FONT color=#0000ff>男人·女人·电脑</FONT></U></A>] [<A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=18713"><U><FONT color=#0000ff>学编程的人不能不看的好文章</FONT></U></A>] [<A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=18742"><U><FONT color=#0000ff>PIC机与MCS-51的区别</FONT></U></A>]</P></TD>
<TR>
<TD>
<P align=center>[<A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=19794"><U><FONT color=#0000ff>一种软件去除键抖动的方法</FONT></U></A>] [<A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=19752"><U><FONT color=#0000ff>司马光,你干嘛砸缸?</FONT></U></A>] [<A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=19748"><U><FONT color=#0000ff>编码规范</FONT></U></A>]&nbsp;</P></TD>
<TR>
<TD>
<P align=center><FONT color=#ff0000>调查:[</FONT><A href="http://21icbbs.com/club/vote/showvote.asp?id=98" target=_blank><U><FONT color=#ff0000>您认为《匠人的百宝箱》如何?</FONT></U></A><FONT color=#ff0000>] [</FONT><A href="http://21icbbs.com/club/vote/showvote.asp?id=129" target=_blank><U><FONT color=#ff0000>您最喜欢《匠人的百宝箱》中哪个栏目?</FONT></U></A><FONT color=#ff0000>] [</FONT><A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=18993"><U><FONT color=#ff0000>请网友来评选最佳队员专栏</FONT></U></A><FONT color=#ff0000>]</FONT>&nbsp;</P></TD></TR></TBODY></TABLE></P></TD></TR></TBODY></TABLE></P>
<P align=left>
<TABLE style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" cellSpacing=1 cellPadding=3 width="100%" bgColor=#cccccc border=0>
<TBODY>
<TR bgColor=#f8f8f8>
<TD>
<P align=left><FONT color=#ff0000 size=4><STRONG><img src=images/face/1.gif ><a href=blog.asp?name=cxjr&subjectid=66>[编程技巧]<a href=more.asp?name=cxjr&id=2256>程序的书写规则(程序的编码规范)</a></STRONG></FONT><BR>程序匠人&nbsp;&nbsp;&nbsp; 2005-8-8 23:20:00&nbsp;&nbsp;&nbsp;&nbsp; <a href=more.asp?name=cxjr&id=2256>阅读全文(1631)</a> | <a href=more.asp?name=cxjr&id=2256#comment>回复(0)</a> | <a href=showtb.asp?id=2256 target=_blank>引用(0)</a><BR><FONT face=宋体 size=4><STRONG>[</STRONG></FONT><A href="http://blog.21ic.org/more.asp?name=cxjr&amp;id=6250" target=_blank><FONT face=宋体 color=#ff0000 size=4><STRONG>广告8号位</STRONG></FONT></A><FONT face=宋体 size=4><STRONG>]&nbsp;[</STRONG></FONT><A href="http://blog.21ic.org/more.asp?name=cxjr&amp;id=7705"><U><FONT style="BACKGROUND-COLOR: #000000" face=宋体 color=#ffffff size=4><STRONG>免责声明</STRONG></FONT></U></A><FONT face=宋体 size=4><STRONG>] [</STRONG><A href="http://blog.21ic.com/more.asp?name=cxjr&amp;id=18993"><U><FONT style="BACKGROUND-COLOR: #ffff00" color=#ff0000 size=3><STRONG>请网友来评选最佳队员专栏!</STRONG></FONT></U></A><STRONG>]</STRONG></FONT></P></TD></TR>
<TR bgColor=#ffffff>
<TD height=0>
<DIV align=left>
<P>程序的书写规则(程序的编码规范)&nbsp;&nbsp;&nbsp;&nbsp; </P>
<P>&nbsp; </P>
<P><BR>随着软件产品的功能增加和版本的提高,代码越来越复杂,源文件也越来越多, <BR>对于软件开发人员来说,除了保证程序运行的正确性和提高代码的运行效率之外,规 <BR>范风格的编码会对软件的升级、修改、维护带来极大的方便性,也保证程序员不会陷 <BR>入“代码泥潭”中无法自拔。开发一个成熟的软件产品,除了有详细丰富的开发文档 <BR>之外,必须在编写代码的时候就有条不紊,细致严谨。 <BR>  以下的编码规范包含了程序排版、注释、命名、可读性、变量、程序效率、质量 <BR>保证、代码编译、代码测试和版本控制等注意事项。 <BR>  一、排版: <BR>  1.关键词和操作符之间加适当的空格。 <BR>  2.相对独立的程序块与块之间加空行 <BR>  3.较长的语句、表达式等要分成多行书写。 <BR>  4.划分出的新行要进行适应的缩进,使排版整齐,语句可读。 <BR>  5.长表达式要在低优先级操作符处划分新行,操作符放在新行之首。 <BR>  6.循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。 <BR>  7.若函数或过程中的参数较长,则要进行适当的划分。 <BR>  8.不允许把多个短语句写在一行中,即一行只写一条语句。 <BR>  9.函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格。 <BR>  10.C/C++语言是用大括号‘{’和‘}’界定一段程序块的,编写程序块时‘{’和 <BR>   ‘}’应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体 <BR>    的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、 <BR>    switch、case语句中的程序都要采用如上的缩进方式。 </P>
<P>  二、注释 <BR>  1.注释要简单明了。 <BR>  2.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。 <BR>  3.在必要的地方注释,注释量要适中。注释的内容要清楚、明了,含义准确,防止 <BR>   注释二义性。保持注释与其描述的代码相邻,即注释的就近原则。 <BR>  4.对代码的注释应放在其上方相邻位置,不可放在下面。 <BR>  5.对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域 <BR>   的注释应放在此域的右方;同一结构中不同域的注释要对齐。 <BR>  6.变量、常量的注释应放在其上方相邻位置或右方。 <BR>  7.全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它 <BR>   以及存取时注意事项等的说明。 <BR>  8.在每个源文件的头部要有必要的注释信息,包括:文件名;版本号;作者;生成 <BR>   日期;模块功能描述(如功能、主要算法、内部各部分之间的关系、该文件与其 <BR>   它文件关系等);主要函数或过程清单及本文件历史修改记录等。 <BR>  9.在每个函数或过程的前面要有必要的注释信息,包括:函数或过程名称;功能描 <BR>   述;输入、输出及返回值说明;调用关系及被调用关系说明等。 </P>
<P>  三、命名 <BR>  1.较短的单词可通过去掉“元音”形成缩写; <BR>  2.较长的单词可取单词的头几发符的优先级,并用括号明确表达式的操作顺序,避 <BR>   免使用默认优先级。 <BR>  3.使用匈牙利表示法 </P>
<P>  四、可读性 <BR>  1.避免使用不易理解的数字,用有意义的标识来替代。 <BR>  2.不要使用难懂的技巧性很高的语句。 <BR>  3.源程序中关系较为紧密的代码应尽可能相邻。 </P>
<P>  五、变量 <BR>  1.去掉没必要的公共变量。 <BR>  2.构造仅有一个模块或函数可以修改、创建,而其余有关模块或函数只访问的公共 <BR>   变量,防止多个不同模块或函数都可以修改、创建同一公共变量的现象。 <BR>  3.仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。 <BR>  4.明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创建等。 <BR>  5.当向公共变量传递数据时,要十分小心,防止赋与不合理的值或越界等现象发生。 <BR>  6.防止局部变量与公共变量同名。 <BR>  7.仔细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间,并减 <BR>   少引起误用现象。 <BR>  8.结构的设计要尽量考虑向前兼容和以后的版本升级,并为某些未来可能的应用保 <BR>   留余地(如预留一些空间等)。 <BR>  9.留心具体语言及编译器处理不同数据类型的原则及有关细节。 <BR>  10.严禁使用未经初始化的变量。声明变量的同时对变量进行初始化。 <BR>  11.编程时,要注意数据类型的强制转换。 </P>
<P>  六、函数、过程 <BR>  1.函数的规模尽量限制在200行以内。 <BR>  2.一个函数最好仅完成一件功能。 <BR>  3.为简单功能编写函数。 <BR>  4.函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。 <BR>  5.尽量不要编写依赖于其他函数内部实现的函数。 <BR>  6.避免设计多参数函数,不使用的参数从接口中去掉。 <BR>  7.用注释详细说明每个参数的作用、取值范围及参数间的关系。 <BR>  8.检查函数所有参数输入的有效性。 <BR>  9.检查函数所有非参数输入的有效性,如数据文件、公共变量等。 <BR>  10.函数名应准确描述函数的功能。 <BR>  11.避免使用无意义或含义不清的动词为函数命名 <BR>  12.函数的返回值要清楚、明了,让使用者不容易忽视错误情况。 <BR>  13.明确函数功能,精确(而不是近似)地实现函数设计。 <BR>  14.减少函数本身或函数间的递归调用。 <BR>  15.编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作) <BR>    等手段对其加以保护。 </P>
<P>  七、可测性 <BR>  1.在编写代码之前,应预先设计好程序调试与测试的方法和手段,并设计好各种调 <BR>  测开关及相应测试代码如打印函数等。 <BR>  2.在进行集成测试/系统联调之前,要构造好测试环境、测试项目及测试用例,同时 <BR>  仔细分析并优化测试用例,以提高测试效率。 </P>
<P>  八、程序效率 <BR>  1.编程时要经常注意代码的效率。 <BR>  2.在保证软件系统的正确性、稳定性、可读性及可测性的前提下,提高代码效率。 <BR>  3.不能一味地追求代码效率,而对软件的正确性、稳定性、可读性及可测性造成影 <BR>   响。 <BR>  4.编程时,要随时留心代码效率;优化代码时,要考虑周全。 <BR>  5.要仔细地构造或直接用汇编编写调用频繁或性能要求极高的函数。 <BR>  6.通过对系统数据结构划分与组织的改进,以及对程序算法的优化来提高空间效率。 <BR>  7.在多重循环中,应将最忙的循环放在最内层。 <BR>  8.尽量减少循环嵌套层次。 <BR>  9.避免循环体内含判断语句,应将循环语句置于判断语句的代码块之中。 <BR>  10.尽量用乘法或其它方法代替除法,特别是浮点运算中的除法。 </P>
<P>  九、质量保证 <BR>  1.在软件设计过程中构筑软件质量。 <BR>  代码质量保证优先原则 <BR>  (1)正确性,指程序要实现设计要求的功能。 <BR>  (2)稳定性、安全性,指程序稳定、可靠、安全。 <BR>  (3)可测试性,指程序要具有良好的可测试性。 <BR>  (4)规范/可读性,指程序书写风格、命名规则等要符合规范。 <BR>  (5)全局效率,指软件系统的整体效率。 <BR>  (6)局部效率,指某个模块/子模块/函数的本身效率。 <BR>  (7)个人表达方式/个人方便性,指个人编程习惯。 <BR>  2.只引用属于自己的存贮空间。 <BR>  3.防止引用已经释放的内存空间。 <BR>  4.过程/函数中分配的内存,在过程/函数退出之前要释放。 <BR>  5.过程/函数中申请的(为打开文件而使用的)文件句柄,在过程/函数退出前要关<BR>闭。 <BR>  6.防止内存操作越界。 <BR>  7.时刻注意表达式是否会上溢、下溢。 <BR>  8.认真处理程序所能遇到的各种出错情况。 <BR>  9.系统运行之初,要初始化有关变量及运行环境,防止未经初始化的变量被引用。 <BR>  10.系统运行之初,要对加载到系统中的数据进行一致性检查。 <BR>  11.严禁随意更改其它模块或系统的有关设置和配置。 <BR>  12.不能随意改变与其它模块的接口。 <BR>  13.充分了解系统的接口之后,再使用系统提供的功能。 <BR>  14.要时刻注意易混淆的操作符。当编完程序后,应从头至尾检查一遍这些操作符。 <BR>  15.不使用与硬件或操作系统关系很大的语句,而使用建议的标准语句。 <BR>  16.建议:使用第三方提供的软件开发工具包或控件时,要注意以下几点: <BR>  (1)充分了解应用接口、使用环境及使用时注意事项。 <BR>  (2)不能过分相信其正确性。 <BR>  (3)除非必要,不要使用不熟悉的第三方工具包与控件。 </P>
<P>  十、代码编译 <BR>  1.编写代码时要注意随时保存,并定期备份,防止由于断电、硬盘损坏等原因造成 <BR>   代码丢失。 <BR>  2.同一项目组内,最好使用相同的编辑器,并使用相同的设置选项。 <BR>  3.合理地设计软件系统目录,方便开发人员使用。 <BR>  4.打开编译器的所有告警开关对程序进行编译。 <BR>  5.在同一项目组或产品组中,要统一编译开关选项。 <BR>  6.使用工具软件(如Visual SourceSafe)对代码版本进行维护。 </P>
<P>  十一、代码测试、维护 <BR>  1.单元测试要求至少达到语句覆盖。 <BR>  2.单元测试开始要跟踪每一条语句,并观察数据流及变量的变化。 <BR>  3.清理、整理或优化后的代码要经过审查及测试。 <BR>  4.代码版本升级要经过严格测试。<BR>&nbsp;<BR>&nbsp;<BR>&nbsp; </P>
<P>&nbsp;</P></DIV></TD></TR></TBODY></TABLE><FONT color=#ff0000></FONT>
<P align=right><A href="http://blog.21ic.org/blog.asp?name=cxjr" target=_blank><FONT color=#ff0000>如果你的‘芯’是一座作坊,我愿做那不知疲倦的程序匠。打造一流博客,我们每天在努力!</FONT></A></P><A href="http://blog.21ic.org/blog.asp?name=cxjr" target=_blank><FONT color=#ff0000></FONT></A><br><a name='comment'></a><table width='90%' border='0' align='center' cellspacing='0' cellpadding='0'> <tr> <td><strong>发表评论:</strong></tr></td></table>
<table width='90%' border='0' align='center' cellspacing='0' cellpadding='0'> <tr> <td><table align='left' width='100%' border='0' cellspacing='0' cellpadding='0'>
<form action='more.asp?name=cxjr&id=2256&action=addcomment_ic' method='post' name='commentform' onSubmit='return Verifycomment()'>
<tr><td height='25'  align='left'>昵称:<input name='UserName' type='text' id='UserName' size='15' maxlength='20' value=''></td></tr>
<tr><td height='25' align='left'>密码:<input name='Password' type='password' id='Password' size='15' maxlength='20' value=''> (游客无须输入密码)</td></tr>
<tr ><td height='25' align='left'  >验证码:<input name='GetCode' type='text' id='GetCode' size='12' maxlength='20' />&nbsp;<img src='inc/code.asp' width='40' height='10' border='0' /><td></tr><tr ><td height='25' align='left'  >主页:<input name='homepage' type='text' id='homepage' size='42' maxlength='50' value='http://'><td></tr><tr ><td height='25' align='left'  >标题:<input name='commenttopic' type='text' id='commenttopic' size='42' maxlength='50' value='回复:程序的书写规则(程序的编码规范)'><td></tr><tr height='200'><td ><INPUT type='hidden' name='edit' id='edit' value=''>
<link rel="STYLESHEET" type="text/css" href="images/edit.css">
<Script Src="images/DhtmlEdit.js"></Script>
<table id="oblog_Container" class="oblog_Body" height=100% width=350 cellpadding=1 cellspacing=0 border=0 >
  <tr> 
    <td  height="10"> <table cellpadding=0 cellspacing=0 >
        <tr class="yToolbar" ID="ExtToolbar0" > 
          <td> <select language="javascript" class="oblog_TBGen" id="FontSize" onchange="FormatText('fontsize',this[this.selectedIndex].value);">
              <option class="heading" selected>字号 
              <option value="1">1 
              <option value="2">2 
              <option value="3">3 
              <option value="4">4 
              <option value="5">5 
              <option value="6">6 
              <option value="7">7</option>
            </select> 
          <td class="oblog_Btn" TITLE="加粗" LANGUAGE="javascript" onclick="FormatText('bold', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/bold.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="斜体" LANGUAGE="javascript" onclick="FormatText('italic', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/italic.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="下划线" LANGUAGE="javascript" onclick="FormatText('underline', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/underline.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -