C/C++命名风格

openkk 12年前

存在C/C++中的四种命名风格:

帕斯卡(Pascal)命名法

    将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用Pascal 大小写。

    例如: MyFirstValue

骆驼(Camel)命名法

    将标识符的首字母小写,而每个后面连接的单词的首字母都大写。

    例如:myFirstValue

匈牙利命名法 

    匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

   例如:iFirstValue

UNIX命名法

   K&R命名法是所有标示符的字母小写,单词之间通过下划线分割

   例如:my_file_value

第一种风格和第三种风格是MFC或者说MS的程序员大量使用的风格,他们会还会在全局变量前加g,在成员变量前加m

第二种风格是面向对象语言所使用的风格;

第四种风格是很多Unix/Linux程序员所使用的风格,包括STL、boost库、Linux系统都使用这种风格,私有成员函数前面会加_。

我自己的风格更倾向与第二种风格,为什么呢?如果我们大量定义了自己的类型,那我们使用匈牙利命名法就会遇到麻烦,会出现很多的重名前缀,如果我们只是去标示原始类型那代码会产生混乱,这样的价值标示的价值也不再存在。我们使用帕斯卡法来命名了类,再去用帕斯卡命名成员或者成员函数会混淆类和普通成员之间的区别。个人的风格如下:

命名空间:使用全小写

类:使用帕斯卡命名法

成员函数和数据成员:使用驼峰命名法,区别局部变量和参数的时添加this指针表明

更重要的是我们所处的开发平台和环境也决定了我们的代码风格和命名风格,如果你去做linux kernel开发那就使用Linux kernel风格吧,如果你是用Qt来做开发,那你就使用Qt代码所使用的风格。