命名的规范

436 阅读3分钟

命名法

几种常见的程序命名规则 正确并形象地给函数、变量命名,不仅可以增加程序的可读性,也是程序员编程风格的一种反映。较好的命名习惯,可以有效的提高程序的可维护性。以下介绍几种常用的变量命名规则。

1.匈牙利命名法:

匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。

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

例如:

 bEnable
 nLength
 hWnd

属性部分:

 g_  全局变量
 c_  常量
 m_  c++类成员变量
 s_  静态变量

类型部分:

 数组 a
 指针 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

2.驼峰命名法(最常用)

驼峰命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。

函数名中每一个逻辑断点都有一个大写字母来标记。

例如:

 printEmployeePaychecks
 userName

3.帕斯卡命名法(Pascal)

与驼峰命名法类似。 只不过驼峰命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。因此这种命名法也有人称之为“大驼峰命名法”。

例如:

 DisplayInfo();
 UserName

在C#中,以帕斯卡命名法和骆驼命名法居多。 事实上,很多程序设计者在实际命名时会将驼峰命名法和帕斯卡结合使用,例如变量名采用驼峰命名法,而函数采用帕斯卡命名法。

4.下划线命名法

下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。

函数的命名:

函数名使用下划线分割小写字母的方式命名: 设备名_操作名();

操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者谓语 宾语/表语(此时设备名作为主语或者标明操作所属的模块) 等形式。例如:

 tic_init();
 adc_is_busy();
 uart_tx_char();

中断函数的命名直接使用 设备名_isr() 的形式命名。例如:

 timer2_isr();

变量的命名:

变量的命名也采用下划线分割小写字母的方式命名。命名应当准确,不引起歧义,且长度适中。例如:

int length;
uint32 test_offset;

单字符的名字也是常用的,如i, j, k等,它们通常可用作函数内的局部变量。tmp常用做临时变量名。 局部静态变量,应加s_词冠(表示static)。例如:

static int s_lastw;

全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global)。例如:

void (* g_capture_hook)(void);

常量及宏的命名:

采用下划线分割大写字母的方式命名,一般应以设备名作为前缀, 防止模块间命名的重复。例如:

#define TIMER0_MODE_RELOAD 2
#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))

当然,看作接口的宏可以按照函数的命名方法命名。例如:

#define timer2_clear() (TF2 = 0)
#define timer0_is_expired() (TF0)