说明
命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。
驼峰命名法
指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。
帕斯卡(Pascal)命名法:与驼峰命名法类似。
驼峰命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。因此这种命名法也有人称之为“大驼峰命名法”。
下划线命名法。
下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。 4.1 函数的命名 函数名使用下划线分割小写字母的方式命名: 设备名_操作名();
中断函数的命名直接使用 设备名_isr() 的形式命名,如: timer2_isr();
4.2 变量的命名 变量的命名也采用下划线分割小写字母的方式命名。命名应当准确,不引起歧义,且长度适中。如:
单字符的名字也是常用的,如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)))
静态函数以s_开头
全局变量以g_开头
常量以c_开头
变量用驼峰命名
函数用帕斯卡命名
- 选择最适合的命名方式。如果使用Eclipse、VS之类的IDE,尽量不要使用前缀,这会影响自动补全功能;但如果不使用IDE,那么适当的使用前后缀、匈牙利编码等手段会提升代码的可读性。除非特殊要求,避免使用项目缩写等无意义前缀。
- 函数功能明确,并可以通过函数名准确的获取函数信息。使用如isEmpty()检查是否为空并返回布尔值,避免使用deleteXXX()命名一个在删除同时返回是否成功的函数,因为从函数名上无法获得关于返回值的信息。
- 准确、精简。注意区分insert、append并替代add使用。尽可能使用email代替emailAddress,因为后者几乎没有提供比前者更多的信息。
- 规范的单词和缩写。不要使用拼音。不要使用任何俚语、双关语,应尽量选取专业的词汇。使用可读的命名而非自定义的缩写。使用的缩写应当是为业内认同的,如使用admin代替administrator,使用info代替information。应当使用generateTimestamp代替genymdhms,在不看注释的情况下,几乎无法读出后者,更遑论弄清它的意义。
- 统一标准。使用getString的同时不应使用set_string,同理也不应使用fetchString。除了循环体内,不使用单字母命名变量。永远不要使用l和O来命名函数和变量。函数名应当是动词或动词短语,变量名应当是名词或名词短语。 6.函数以功能命名,不能以实现命名
关于编程的规模控制: 文件大小:200行以内最佳,核心控制文件不应超过500行 函数大小:20~30行,直观上行数不超过大半屏 行大小:20~60个字符,直观上不需要移动横向滚动条(通过强制换行的与此无异) 函数内缩进:两级最好(for、if各算一级),尽力控制在三级