PersonalCorpus 版 (精华区)

发信人: Sun (大灯泡), 信区: SoftEng
标  题: 谈谈代码风格——附录
发信站: 紫 丁 香 (Tue Apr 11 10:25:04 2000), 转信

发信人: xiaobo (克利斯朵夫), 信区: SoftEng 
标  题: Re: 请教编程规范 
发信站: BBS 水木清华站 (Tue Oct 27 10:51:06 1998) 
 
【 在 start1 (sonic) 的大作中提到: 】 
∶ 请教: 
∶ 何处能得到关于编程规范(即编程准则,例如变量命名规则、注释规则 
∶ 等)的资料。 
 
呵呵,这是原来我自己修订的一个编程规范,准备在实验室中应用,后来又不了了之。 
供参考,请指点。 
 
============================================================================== 
编程规范 
【命名约定】 
一、变量名的约定: 
命名规则主要采用匈牙利命名法。进行了一些增删。 
1. 用小写字母的前缀表示变量的类型,前缀的下一个字母用大写。 
------------------------------------------------------------------------------ 
前缀                    类型                            例子 
b       *               Boolean                         bIsParent 
by                      字节                            byFlag 
ch      *               char                            chText 
c       *               类对象                          cMain(对象实例) 
fn                      Function                        fnCallback 
h       *               Handle(句柄)                  hWnd 
i       *               int                                      
n       *               无符号整型                       
p       *               指针                             
sz,str  *               字符串                           
w                       WORD                             
x,y                     坐标                            xPos, yPos 
------------------------------------------------------------------------------ 
其中,带“*”号的为常用约定。 
其它前缀: 
m_                      类成员变量                      m_nVal, m_bFlag 
g_                      全局变量                        g_nMsg, g_bFlag 
 
局部变量中可采用如下几个通用变量:nTemp,nResult,I,J(一般用于循环变量)。 
 
二、VB中控件的命名: 
用小写前缀表示类别: 
fm              窗口 
cmd             按钮 
cob             combo,下拉式列表框 
txt             文本输入框 
lab             labal,标签 
img             image,图象 
pic             picture 
grd             Grid,网格 
scr             滚动条 
lst             列表框 
frm             fram 
 
【注释规范】 
一、函数 
在函数开头,用如下格式注释: 
/*************************************************************************/ 
/*      Function: DelStringFrom String                                   */ 
/*              从一个String删除另一个String。                           */ 
/*      参数:strByDelete,strToDelete                                   */ 
/*              strByDelete: 被删除的字符串(原来的字符串)              */ 
/*              strToDelete: 要从上个字符串中删除的字符串。              */ 
/*      返回:找到并删除返回0,否则返回-1.                               */ 
/*************************************************************************/ 
 
二、变量 
对于非通用的变量,请在定义时加以注释说明,变量定义尽可能放在最开始处。 
 
三、文件注释 
在文件开头注释以下内容: 
//////////////////////////////////////////////////////////////////////////// 
//      Project: 文件所在的项目名,如:eForum 
//      By: 作者、修改者、...,如:xiaobo、qyz......... 
//      Discription: 说明文件的功能。 
//////////////////////////////////////////////////////////////////////////// 
 
四、其它 
函数内各功能模块,如:循环、流程的各分支等,尽可能多的加以注释。 
 
【编程风格】 
一、严格采用梯形层次对应好各层次。如: 
main() 

  int i,j; 
  ........ 
  for (i==0;i<100;i++) 
  { 
    .......... 
    .......... 
    if (i==0)  
      { 
         ......... 
         ......... 
      } 
    .......... 
    .......... 
  } 
  ......... 

 
二、注意错误处理 
编程中要考虑函数的各种执行情况,尽可能处理所有流程情况。 
将函数分两类: 
                一类为与屏幕的显示无关, 
                二类为与屏幕的显示有关。 
对于与屏幕显示无关的函数,函数通过返回值来报告错误。 
对于与屏幕显示有关的函数,函数要负责向用户发出警告,并进行错误处理。 
错误处理代码一般放在函数末尾,如下(以VB程序为例): 
  ........ 
  On Error Goto  errHandle 
  ....... 
  Exit Sub 
   
errHandle: 
  Select Case Err 
  Case 1: 
    .... 
  Case 2: 
    .... 
  Case Else: 
    .... 
  End Select 
End Sub 
对于通用的错误处理,可建立通用的错误处理函数,处理常见的通用的错误。 
 
【模块化】 
某一功能,如果重复实现三遍以上,即应考虑模块化,将它写成通用函数。并向小组成员 
发布。同时已要尽可能利用其它人的现成模块。模块化的一些注意事项: 
1. 设计好模块接口,用面向对象的观点看,包括:函数接口和变量接口。 
2. 定义好接口以后不要轻易改动,并在模块开头(文件的开头或函数的开头)加以说明。 
3. 不要在外部使用接口以外的其它函数或变量。 
4. 注意全局变量也是一种接口。 
5. 接口即是罗列出一个模块的所有的与外部打交道的变量、函数等。 
 
 
-- 
  欢乐,如醉如痴的欢乐,好比一颗太阳照耀着一切现在的与未来的成就, 
创造的欢乐,神明的欢乐!唯有创造才是欢乐。唯有创造的生灵才是生灵。 
 
                                                          --《约翰.克利斯朵夫》 
 
※ 修改:·xiaobo 於 Oct 27 10:52:33 修改本文·[FROM:   166.111.49.32] 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.49.32] 

--
    太阳就是个大灯泡。(自创)
    先天下之光而光,后天下之脱而脱。(摘抄)

※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.239.237]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:8.207毫秒