Unlimited Blade Works

Unaware of loss.Nor aware of gain.

导航

个人C/C++命名规范

  最近看自己以前的代码发现自己的命名习惯很乱,不同程序中的命名习惯都不一样。考虑到代码要方便自己和别人阅读,除了注释的规范,命名也要规范起来。以下的规定主要来自以前一位学长的,另外我也看了匈牙利命名法,骆驼命名法和帕斯卡命名法,也受到些启发。以下规范主要针对于C/C++。

 

1.变量
1.1 全局变量:所有字母小写,单词间以下划线'_'分隔。
例子:
  int this_is_a_global_integer
1.2 临时变量:第一个单词首字母小写,之后单词首字母大写,单词间不分隔(骆驼命名法)。
例子:
  int thisIsATemporaryInteger
1.3 类的成员变量:以小写的m开头,之后每个单词首字母大写,单词间不分隔(匈牙利命名法+帕斯卡命名法)。
例子:
  int mThisIsAClassMemberInteger
1.4 函数(方法)的参数变量:以“p_”开头,其余同临时变量。
例子:
  int p_thisIsAFunctionParameterInteger
2.函数(方法)
  第一个单词首字母小写,之后单词首字母大写,单词间不分隔
例子:
  int thisIsAFunction()
3.类
  每个单词的首字母大写,单词间不分隔(帕斯卡命名法)
例子:
  class ThisIsAClass
4.宏
  所有字母大写,单词间以'_'分隔
变量例子:
  #define THIS_IS_MACRO 88
函数例子:
  #define MAX(a,b) a>b?a:b

 

  文末附上另外三个命名规范的介绍。(来自百度百科http://baike.baidu.com/view/506470.htm

骆驼式命令法:
  正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数:
  printEmployeePaychecks();
  print_employee_paychecks();
  第一个函数名使用了骆驼式命名法,函数名中的每一个逻辑断点都有一个大写字母来标记;第二个函数名使用了下划线法,函数名中的每一个逻辑断点都有一个下划线来标记。
  骆驼式命名法近年来越来越流行了,在许多新的函数库和Microsoft Windows这样的环境中,它使用得当相多。另一方面,下划线法是c出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍。

匈牙利命名法:
  广泛应用于象Microsoft Windows这样的环境中。Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯- 西蒙尼(Charles Simonyi) 提出的。
  匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量), 再指针,再简单数据类型,再其它。
  例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。
  匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

帕斯卡(pascal)命名法:
  与骆驼命名法类似。只不过骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写,如:
  DisplayInfo();
  string UserName;
  二者都是采用了帕斯卡命名法。在C#中,以帕斯卡命名法和骆驼命名法居多

 

posted on 2010-11-17 17:51  飞鸿无月  阅读(1091)  评论(0编辑  收藏  举报