正文

命名规范2008-12-09 11:24:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xman/39849.html

分享到:

.术语定义

Pascal 大小写

将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用Pascal 大小写。例如: MessageBox

Camel 大小写

标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:hInstance

.命名概述

名称应该说明什么而不是如何。通过避免使用公开基础实现(它们会发生改变)的名称,可以保留简化复杂性的抽象层。

例如,可以使用 GetNextStudent(),而不是 GetNextArrayElement()

.命名原则

选择正确名称时的困难可能表明需要进一步分析或定义项的目的。使名称足够长以便有一定的意义,并且足够短以避免冗长。唯一名称在编程上仅用于将各项区分开。表现力强的名称是为了帮助人们阅读;因此,提供人们可以理解的名称是有意义的。不过,请确保选择的名称符合适用语言的规则和标准。

.命名方法

1、  变量的名字应该是非形式的、简单的、易记忆的。变量的作用越大,它的名字要携带的信息就越,全局变量应该受到更多的注意。

2、  即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。可能的情况下,尽量不要使用原义数字或原义字符串,如For i = 1 To 7,应该使用命名常数,如 For i = 1 To NUM_DAYS_IN_WEEK 以便于维护和理解。

3、  只要合适,在变量名的末尾或开头加计算限定符(AvgSumMinMaxIndex)。

4、  在变量名中使用互补对,如 min/maxbegin/end open/close

5、  布尔变量名应该包含 Is,这意味着 Yes/No True/False 值,如 fileIsFound

6、  在命名状态变量时,避免使用诸如 Flag 的术语。状态变量不同于布尔变量的地方是它可以具有两个以上的可能值。不是使用 documentFlag,而是使用更具描述性的名称,如 documentFormatType (此项只供参考)

7、  变量名并不是越长越好,在力求描述性的同时还要兼顾简洁清晰性。一般一次性临时变量(例如短循环索引)可以被取名为ijkm n,它们一般用于整型;而cde,它们一般用于字符型。

8、  在类属性的名称中包含类名是多余的,如 Book.BookTitle。而是应该使用 Book.Title

.匈牙利命名法

匈牙利命名法是一名匈牙利程序员发明的,而且他在微软工作了多年。此命名法就是通过微软的各种产品和文档传出来的。多数有经验的程序员,不管他们用的是哪门儿语言,都或多或少在使用它。

这种命名法的基本原则是:变量名=属性+类型+对象描述,即一个变量名是由三部分信息组成,这样,程序员很容易理解变量的类型、用途,而且便于记忆。

下边是一些推荐使用的规则例子,你可以挑选使用,也可以根据个人喜好作些修改再用之。

⑴属性部分:

全局变量Global):g_ 

常量 Constant):c_

c++类成员变量Member variable):m_ 
静态变量 (Static) s_ 

 ⑵类型部分:

实型(Real): r  

无符号(Unsigned): u  

字节(Byte):by 

整型 Int):i,n

长整型(Long):
布尔 Bool):
浮点型(Float,有时也指文件File):f  
双精度浮点(Double):

字(Word):w  

双字(Dword/DoubleWord):dw  
字符 Char):ch(通常用c 

字符串(String end with Zero):sz  
   
指针 Pointer): p  

长指针(Long Pointer):lp

函数(Function):fn  

函数指针(Function Pointer):(lpfn 

句柄(Handle,多用于windows编程):h  

计数(Counter): c(通常用cnt

⑶描述部分:

初始化Initialize): Init

临时变量(Temp):Tmp

源对象Source):Src

目的对象Destination):Dst

窗口Window):Wnd

最大Maximum Max  
最小Minimum): Min  

下边举例说明:

hwnd h表示句柄,wnd表示窗口,合起来为“窗口句柄”。

m_bFlag m表示成员变量,b表示布尔,合起来为:“某个类的成员变量,布尔型,是一个状态标志”。

参考:http://dev.csdn.net/article/34/34000.shtm

六.命名细则

1.措词phrase

避免使用和以下关键字冲突的标识符,避免使用与常用的框架命名空间重复的类名称,如MFC中的CWnd等已定义的类。

2.常量 (const)

所有单词大写,多个单词之间用 "_" 隔开。 例如:#define WM_CREATE  0x0001

3.变量variable

每行声明数一行只建议作一个声明,并按字母顺序排列。如

           int level;   //推荐

          int size;    //推荐

          int x, y;    //不推荐

初始化建议在变量声明时就对其做初始化,防止出现随机值。

位置

变量建议置于块的开始处,不要总是在第一次使用它们的地方做声明。例如:

 void MyMethod()

{

     int int1 = 0;       // beginning of method block

     if (condition)

     {

         int int2 = 0;     // beginning of "if" block

         ...

     }

}

不过也有一个例外:

for (int i = 0; i < maxLoops; i++)

{

     ...

}

应避免不同层次间的变量重名,例如:

int count;

...

void MyMethod()

{

     if (condition)

     {

         int count = 0;     // 避免

         ...

     }

     ...

}

4.函数(方法function

1 使用动词或动词短语命名方法。

2 使用 Pascal 大小写。

以下是正确命名的方法的实例:

CreateWindow,ShowWindow, UpdateWindow

5.参数reference

对参数名称使用 Camel 大小写。

以下是WinMain函数的参数示例:

int WINAPI WinMain(

                   HINSTANCE hInstance,

                   HINSTANCE hPrevInstance,

                   LPSTR     lpCmdLine,

                   int       nCmdShow

                   ) 

阅读(2331) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册