1、现有的命名方式有多少种,举例说明。
一、匈牙利命名法:
匈牙利命名法:前缀+首字母大写的单词
前缀是小写字母的符号标识,标识出变量的作用域,类型等,这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。
首字母大写的单词:指明变量的用途。
例如:m_lpszStr,表示指向一个以0字符结尾的字符串的长指针成员变量。
其中m_(成员变量) lp(长指针) sz(以0结尾的字符串)
二、驼峰命名法:
混合使用大小写字母来构成标识符的名字。
其中第一个单词首字母小写,余下的单词首字母大写。
例如:firstName,lastName
函数名中每一个逻辑断点都有一个大写字母来标记。
三、帕斯卡(Pascal)命名法:
混合使用大小写字母来构成标识符的名字。
每一个单词首字母大写
例如:FirstName,LastName
四、下划线命名法。
4.1 函数的命名
函数名使用下划线分割小写字母的方式命名:
设备名_操作名();
操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者谓语 宾语/表语(此时设备名作为主语或者标明操作所属的模块) 等形式,
如:tic_init();
中断函数的命名直接使用 设备名_isr() 的形式命名,
如:timer2_isr();
4.2 变量的命名
变量的命名也采用下划线分割小写字母的方式命名。命名应当准确,不引起歧义,且长度适中。
如: uint32 test_offset;
单字符的名字也是常用的,如i, j, k等,它们通常可用作函数内的局部变量。tmp常用做临时变量名。
局部静态变量,应加s_词冠(表示static),如:
static int s_lastw;
全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global),如:
void (* g_capture_hook)(void);
4.3 常量及宏的命名
采用下划线分割大写字母的方式命名,一般应以设备名作为前缀,
防止模块间命名的重复。如:
#define TIMER0_MODE_RELOAD 2