2016-03-12
19:04:41
现有的命名方式有多少种?请各举一例:
1.匈牙利命名法
这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变 量),再指针,再简单数据类型,再其他。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。
2.驼峰命名法
混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。
函数名中每一个逻辑断点都有一个大写字母来标记。
例如: printEmployeePaychecks() 。
3.帕斯卡(Pascal)命名法
只不过驼峰命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。因此这种命名法也有人称之为“大驼峰命名法”。
例如: DisplayInfo(); UserName。
4.下划线命名法
4.1函数的命名
函数名使用下划线分割小写字母的方式命名: 设备名_操作名();
操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者谓语+宾语/表语(此时设备名作为主语或者标明操作所属的模块) 等形式。
例如: tic_init(); adc_is_busy(); uart_tx_char();
中断函数的命名直接使用设备名_isr() 的形式命名。
例如: timer2_isr()。
4.2变量的命名
变量的命名也采用下划线分割小写字母的方式命名。命名应当准确,不引起歧义,且长度适中。
例如:int length; 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
#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))
当然,看作接口的宏可以按照函数的命名方法命名,
例如:#define timer2_clear() (TF2 = 0)
#define timer0_is_expired() (TF0)
(参考百度文库http://wenku.baidu.com/link?url=9OvXId9MbPmqqvn6fEJVUW9mihHm8SSE3yX91TDDOR06Nrd3xSRsMrMipKvazqGAMmYLHA_2uwgtc3FU83te9I6S5U3EGrEfTA9ydVyiupq)