快速业务通道

Google C++编程风格指南(五):命名约定

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29
OK - uses underscore.

string tablename; // OK - all lowercase.string tableName; // Bad - mixed case.

类数据成员:

结构体的数据成员可以和普通变量一样,不用像类那样接下划线:

struct UrlTableProperties {
string name;
int num_entries;
}

结构体与类的讨论参考第三篇结构体vs.类一节。

全局变量:

对全局变量没有特别要求,少用就好,可以以g_或其他易与局部变量区分的标志为前缀。

5.常量命名(Constant Names)

在名称前加k:kDaysInAWeek。

所有编译时常量(无论是局部的、全局的还是类中的)和其他变量保持些许区别,k后接大写字母开头的单词:

const int kDaysInAWeek = 7;

6.函数命名(Function Names)

普通函数(regular functions,译者注,这里与访问函数等特殊函数相对)大小写混合,存取函数(accessors and mutators)则要求与变量名匹配:MyExcitingFunction()、MyExcitingMethod()、my_exciting_member_variable()、set_my_exciting_member_variable()。

普通函数:

函数名以大写字母开头,每个单词首字母大写,没有下划线:

AddTableEntry()

DeleteUrl()

存取函数:

存取函数要与存取的变量名匹配,这儿摘录一个拥有实例变量num_entries_的类:

class MyClass {
public:
...
int num_entries() const { return num_entries_; }
void set_num_entries(int num_entries) { num_entries_ = num_entries; }
private:
int num_entries_;
};

其他短小的内联函数名也可以使用小写字母,例如,在循环中调用这样的函数甚至都不需要缓存其值,小写命名就可以接受。

译者注:从这一点上可以看出,小写的函数名意味着可以直接内联使用。

7.命名空间(Namespace Names)

命名空间的名称是全小写的,其命名基于项目名称和目录结构:google_awesome_project。

关于命名空间的讨论和如何命名,参考第二篇命名空间。

8.枚举命名(Enumerator Names)

枚举值应全部大写,单词间以下划线相连:MY_EXCITING_ENUM_VALUE。

枚举名称属于类型,因此大小写混合:UrlTableErrors。

enum UrlTableErrors {
OK = 0,
ERROR_OUT_OF_MEMORY,
ERROR_MALFORMED_INPUT,
};

9.宏命名(Macro Names)

你并不打算使用宏,对吧?如果使用,像这样:MY_MACRO_THAT_SCARES_SMALL_CHILDREN。

参考第四篇预处理宏,通常是不使用宏的,如果绝对要用,其命名像枚举命名一样全部大写、使用下划线:

#define ROUND(x) ...
#define PI_ROUNDED 3.0
MY_EXCITING_ENUM_VALUE

10.命名规则例外(Exceptions to Naming Rules)

当命名与现有C/C++实体相似的对象时,可参考现有命名约定:

bigopen()
函数名,参考open()
uint
typedef类型定义
bigpos
struct或class,参考pos
sparse_hash_map
STL相似实体;参考STL命名约定
LONGLONG_MAX
常量,类似INT_MAX

______________________________________

译者:命名约定就相对轻松许多,在遵从代码一致性、可读性的前提下,略显随意:

1.总体规则:不要随意缩写,如果说ChangeLocalValue写作ChgLocVal还有情可原的话,把ModifyPlayerName写作MdfPlyNm就太过分了,除函数名可适当为动词外,其他命名尽量使用清晰易懂的名词;

2.宏、枚举等使用全部大写+下划线;

3.变量(含类、结构体成员变量)、文件、命名空间、存取函数等使用全部小写+下划线,类成员变量以下划线结尾,全局变量以g_开头;

4.普通函数、类型(含类与结构体、枚举类型)、常量等使用大小写混合,不含下划线;

5.参考现有或相近命名约定。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号