This blog has been shut down permanently.

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  13 随笔 :: 0 文章 :: 25 评论 :: 0 Trackbacks

简单的说

MyData 就是一个帕斯卡命名法
而myData是一个骆驼命名法,它第一个单词的第一个字母小写,后面的单词首字母大写,看起来像一个骆驼
而iMyData是一个匈牙利命名法,它的小写的i说明了它的形态,后面的和帕斯卡命名相同,指示了该变量的用途.

 

一、匈牙利命名法:广泛应用于象Microsoft Windows这样的环境中。

       Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。

匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。

     匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

匈牙利命名法中常用的小写字母的前缀:

前 缀        类  型
a                数组 (Array)  
b                布尔值 (Boolean)  
by              字节 (Byte)  
c               有符号字符 (Char)  
cb             无符号字符 (Char Byte,没有多少人用)  
cr              颜色参考值 (ColorRef)  
cx,cy          坐标差(长度 ShortInt)  
dw            Double Word  
fn               函数  
h                 Handle(句柄)  
i                 整型  
l               长整型 (Long Int)  
lp              Long Pointer  
m_           类的成员  
n             短整型 (Short Int)  
np           Near Pointer  
p             Pointer  
s            字符串型  
sz          以null做结尾的字符串型 (String with Zero End)  
w         Word  


二、骆驼命名法:

         骆驼式命令法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数:

    printEmployeePaychecks();

     print_employee_paychecks();

      第一个函数名使用了骆驼式命名法——函数名中的每一个逻辑断点都有一个大写字母来标记;第二个函数名使用了下划线法----函数名中的每一个逻辑断点都有一个下划线来标记。

     骆驼式命名法近年来越来越流行了,在许多新的函数库和Microsoft
Windows这样的环境中,它使用得当相多。另一方面,下划线法是c出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍。


三、帕斯卡(pascal)命名法:

        与骆驼命名法类似。只不过骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写

        如:public void
DisplayInfo();

               string UserName;

               二者都是采用了帕斯卡命名法.


在C#中,以帕斯卡命名法和骆驼命名法居多。

转自http://www.zouyang.net/post/219.html

posted on 2010-03-11 13:21 iZ 阅读(2301) 评论(5)  编辑 收藏 引用 所属分类: 『Software Engineering』

评论

# re: 骆驼命名法,帕斯卡命名法和匈牙利命名法 2010-03-12 10:44 iSsay
PS:
The Microsoft naming conventions suggest using camel notation (initial lowercase such as someName) for variable names and Pascal notation (initial uppercase such as SomeOtherName) for method names and most other identifiers.

Microsoft no longer recommends using Hungarian notation (e.g., iSomeInteger) or underscores (e.g., Some_Value).  回复  更多评论
  

# re: 骆驼命名法,帕斯卡命名法和匈牙利命名法 2010-03-12 11:16 陈梓瀚(vczh)
原本匈牙利命名法,并不是按照变量的“声明类型”,而是变量的“实际类型”来命名的。

错误:
char* pszName = "旺财";
Person* person=new Person;
person->pszName = pszName;

正确:
char* dogName = "旺财";
Person* person=new Person;
person->name = dogName;  回复  更多评论
  

# re: 骆驼命名法,帕斯卡命名法和匈牙利命名法 2010-03-12 16:44 iSsay
@陈梓瀚(vczh)

不存在你所说的问题。匈牙利命名法有两种:系统匈牙利命名法和匈牙利应用命名法。所以两种办法怎么用,主要看个人习惯咯。

现在微软已不提倡使用匈牙利命名法,所以没有太多讨论的价值。而骆驼法多使用在变量命名上,帕斯卡多使用于方法函数、及其他标识符。

话说回来你的例子有点荒诞(最后一行)  回复  更多评论
  

# re: 骆驼命名法,帕斯卡命名法和匈牙利命名法 2010-03-12 17:37 陈梓瀚(vczh)
@iSsay
这正是这种命名法的好处嘛,一看就知道有没有写错。  回复  更多评论
  

# re: 骆驼命名法,帕斯卡命名法和匈牙利命名法 2010-03-22 16:45 iSsay
@陈梓瀚(vczh)
呵呵,也对。
目前,有骆驼和帕斯卡命名法已完全够用了。
骆驼法用于变量,例如:someVariety
帕斯卡用于方法、其他标识符,例如:SomeMethod
命名的时候最好使用Verb+Noun的形式
简单直观一目了然  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理