匈牙利命名法:首字母小写,基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。
在Windows编程中使用非常普遍,由微软的一位匈牙利程序员Charles Simonyi 提出。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域、类型等。例如,m_lpszStr表示指向一个以0字符结尾的字符串的长指针成员变量。匈牙利命名法是一种编程时的命名规范。 举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为 Switchboard时,变量全称应该为 frmSwitchboard。这样可以很容易从变量名看出Switchboard是一个表单,同样,如果此变量类型为标签,那么就应命名成 lblSwitchboard。可以看出,匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交流代码。
属性部分
全局变量 g_
常量 c_
c++类成员变量 m_
静态变量 s_
类型部分
指针 p
函数 fn
无效 v
句柄 h
长整型 l
布尔 b
浮点型(有时也指文件) f
双字 dw
字符串 sz
短整型 n
双精度浮点 d
计数 c(通常用cnt)
字符 ch(通常用c)
整型 i(通常用n)
字节 by
字 w
实型 r
无符号 u
描述部分
最大 Max
最小 Min
初始化 Init
临时变量 T(或Temp)
源对象 Src
目的对象 Dest
在面向对象的程序设计中匈牙利命名法使用起来非常别扭。
Camel命名法:即骆驼式命名法,首字母小写,采用该命名法的名称看起来就像骆驼的驼峰一样高低起伏。Camel命名法有两种形式:
1、混合使用大小写字母,例如runFast
2、单词之间加下划线,例如run_fast
用于所有的类和方法名,无论其可访问性如何。而对于attribute的名称而言,公共的attribute名称采用此法
Pascal命名法:首字母大写,与Camel命名法类似,用于非公共的attribute的名称。
参考:
C++、Java与C#的命名规范总结:http://www.cnblogs.com/zyobi/archive/2009/05/21/1486448.html
Google C++编程风格指南:http://www.cppblog.com/Fox/category/6273.html?Show=All
Java语言编码规范:http://huihoo.org/code/java_code_conventions.html
.Net Framework开发人员指南——名称准则:http://msdn.microsoft.com/zh-cn/library/ms229002(VS.80).aspx
C#命名规则、开发习惯和风格:http://www.cnblogs.com/netshuai/archive/2008/06/29/1231934.html