其基本原则是,变量名=属性+类型+对象描述。其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分
广泛应用于像MicrosoftWindows这样的环境中。Windows编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯•西蒙尼(Charles Simonyi)提出的。
匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr,表示指向一个以0字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
在windowsForm应用程序中,控件命名采用匈牙利命名法。例如:
TextBox类型,前缀加txt,命名为txtCustomerName,txtAddress。
Button类型,前缀加btn,命名为btnSave,btnDelete。
匈牙利命名法中常用的小写字母的前缀:
前缀 类型
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 字符串型 (string)
sz 以null做结尾的字符串型(String with Zero End)
w Word
每一个逻辑断点都有一个下划线来标记,下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍,
Linux下建议的命名规则如下
(1)变量名必须有一定的意义,并且意义准确。例如有一个变量用于保存图书的数目,可以命名为number_of_book或者num_of_book。不建议使用i,因为它没有意义。也不建议使用number或book,因为意义不准确。
(2)不建议大小写混用。如定义一个计数变量,int nCount;这在Windows中是一个很好的变量名,其中nCount的首字母n用来说明这个变量的类型是int。但在Linux下不建议大小写混合使用,一般标识符只由小写字母,数字和下划线构成。
(3)在失去意义的情况下,尽量使用较短的变量名。例如有一个变量,用于暂时存储一个计数值,把变量命名为tmp_count显然要比this_is_a_temperary_counter好。
(4)不采用匈牙利命名法表示变量的类型。如int nCount;n用于说明变量的类型,在Linux中不建议这样命名变量。
(5)函数名应该以动词开头,因为函数是一组具有特定功能的语句块。比如一个函数,它用于取得外部输入的数值,则可以命名为get_input_number。
(6)尽量避免使用全局变量。
每一个逻辑断点都有一个大写字母来标记,是指混合使用大小写字母来构成变量和函数的名字,
:与骆驼命名法类似只不过骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写,在C#中,以帕斯卡命名法和骆驼命名法居多。
编程规范
类型 命名规则 说明
命名空间 namespace Pascal 以.分隔,其中每一个限定词均为Pascal命名方式,
如:ExcelQuicker.Work
类class、结构struct Pascal 每一个逻辑断点首字母大写,如:
public class MyHome;public struct MyStruct
接口 interface IPascal 每一个逻辑断点首字母大写,总是以I前缀开始,后接Pascal命
名,如:public interface IBankAccount
方法 method Pascal 每一个逻辑断点首字母大写,动宾短语,如:
private void SetMember(string)
枚举类型enum Pascal 每一个逻辑断点首字母大写
委托delegate Pascal 每一个逻辑断点首字母大写
局部变量、方法参数、委托参数 Camel 首字母小写,之后Pascal命名,如:string myName