关于编程命名规则与代码风格

来源:互联网 发布:windows syswow64 编辑:程序博客网 时间:2024/06/11 14:52
1. 编程命名规则

没有一种命名规则是所有人都赞同的,在这里,我们只是把常用的命名规则罗列出来,然后从中找出适合shell编程和便于理解的规则作为我们的命名规则。当然,我们不会只推荐一种,我们会推荐一两种,然后希望这一两种成为我们的规范。


1.1 常见命名规则

比较著名的命名规则是匈牙利命名法,但这种命名法对于跨平台移植简直是灾难。这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。例如:lpszStr, 表示指向一个以'\0'结尾的字符串(sz)的长指针(lp)变量。

骆驼(Camel)命名法近年来越来越流行,在许多新的函数库和Java这样的平台下使用得当相多。骆驼命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。例如:printEmployeePaychecks(),函数名中每一个逻辑断点都有一个大写字母来标记。

帕斯卡(Pascal)命名法与骆驼命名法类似。只不过骆驼命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。例如:DisplayInfo()和UserName都是采用了帕斯卡命名法。

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

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

对于以上的几种命名规则,我们认为比较对变量或函数进行描述的是骆驼命名法和下划线命名法,因此,我们推荐使用这两种命名方面。


1.2 函数的命名

函数的命名推荐使用下划线分割小写字母的方式。命名结构形如:

1. 设备名_操作名():表达的意思是要对什么设备进行什么操作,例如array_handle()表示对一个数组进行操作。

2. 操作名():一些简单的操作,可以直接用操作名来做函数名,只要不和系统命令冲突,例如email()表示发送email。

1.3 变量的命名

为区别于函数,变量的命名方法我们推荐骆驼命名法,因为unix/linux衍生于C。命名时尽量用有意义的单词,单词所写能表达意思的尽量用单词缩写。例如progRoot表示程序的根目录,logDir表示日志文件的目录。

1.4 常量的命名

常量建议用下划线分割大写字母的方法。例如,GLOBAL_VAR1。


1.5 函数内部变量

函数中可以使用local定义仅在函数内部使用的局部变量,为区别于全局变量,建议在局部变量之前加下划线,例如local _funcLocalVar。



关于代码风格的20点建议:

对软件的评价:代码的稳定性、友好性、代码的易读性、统一的风格、技巧。

1、尽量少的使用全局变量

2、局部变量一定要初始化,特别是指针变量

3、成员函数功能单一,不要过分追求技巧,函数体不要过长。

4、最好有头文件

5、关于变量名的长短问题

6、设计函数时考虑到通用性

7、申请内存时,一定先要释放。注意用if判断。

8、对浮点数比较大小时注意不要使用 ==

9、最好不要用 goto 语句

10、所有成员函数要单出口单入口

11、函数中,要先检验参数的合法性

12、最好所有的函数都有返回值,表明错误的原因。

13、注释问题

14、类型转化一律用显示转换。

15、定义宏说,参数使用括号,结果也应该括起来
#define SUB(a,b) ((a)-(b))

16、变量长度一定要用 sizeof 来求

17、malloc 后千万别忘 free 及使指针等于 NULL。

18、字符串拷贝时尽量少使用 sprintf,而使用 memcpy,最后别忘加上''

19、慎重选择编译时的优化选项。

20、小组开发时,注意代码风格的统一。