名字空间命名:名字空间用小写字母命名,并基于项目名称和目录结构:google_awesome_project.
关于名字空间的讨论和如何命名,参考名字空间一节.
枚举命名:枚举的命名应当和常量或宏一致:kEnumName或是ENUM_NAME.
单独的枚举值应该优先采用常量的命名方式.但宏方式的命名也可以接受.枚举名UrlTableErrors(以及AlternateUrlTableErrors)是类型,所以要用大小写混合的方式.
enum UrlTableErrors {
kOK = 0,
kErrorOutOfMemory,
kErrorMalformedInput,
};
enum AlternateUrlTableErrors {
OK = 0,
OUT_OF_MEMORY = 1,
MALFORMED_INPUT = 2,
};2009年1月之前,我们一直建议采用宏的方式命名枚举值.由于枚举值和宏之间的命名冲突,直接导致了很多问题.由此,这里改为优先选择常量风格的命名方式.新代码应该尽可能优先使用常量风格.但是老代码没必要切换到常量风格,除非宏风格确实会产生编译期问题.
宏命名:你并不打算使用宏,对吧?如果你一定要用,像这样命名:MY_MACRO_THAT_SCARES_SMALL_CHILDREN.
参考预处理宏<preprocessor-macros>;通常不应该使用宏.如果不得不用,其命名像枚举命名一样全部大写,使用下划线:
#define ROUND(x) ... #define PI_ROUNDED 3.0命名规则的特例:如果你命名的实体与已有C/C++实体相似,可参考现有命名策略.
bigopen():函数名,参照open()的形式
uint:typedef
bigpos:struct或class,参照pos的形式
sparse_hash_map:STL相似实体;参照STL命名约定
LONGLONG_MAX:常量,如同INT_MAX
7.注释:
注释虽然写起来很痛苦,但对保证代码可读性至关重要.下面的规则描述了如何注释以及在哪儿注释.当然也要记住:注释固然很重要,但最好的代码本身应该是自文档化.有意义的类型名和变量名,要远胜过要用注释解释的含糊不清的名字.
你写的注释是给代码读者看的:下一个需要理解你的代码的人.慷慨些吧,下一个人可能就是你!
注释风格:使用//或/* */,统一就好.
//或/**/都可以;但//更常用.要在如何注释及注释风格上确保统一.
法律公告和作者信息:每个文件都应该包含以下项,依次是:
(2)、许可证.为项目选择合适的许可证版本(比如,Apache2.0,BSD,LGPL,GPL)
(3)、作者:标识文件的原始作者.

如果你对原始作者的文件做了重大修改,将你的信息添加到作者信息里.这样当其他人对该文件有疑问时可以知道该联系谁.
通常,.h文件要对所声明的类的功能和用法作简单说明..cc文件通常包含了更多的实现细节或算法技巧讨论,如果你感觉这些实现细节或算法技巧讨论对于理解.h文件有帮助,可以该注释挪到.h,并在.cc中指出文档在.h.
不要简单的在.h和.cc间复制注释.这种偏离了注释的实际意义.
类注释:每个类的定义都要附带一份注释,描述类的功能和用法.
// Iterates over the contents of a GargantuanTable. Sample usage:
// GargantuanTable_Iterator* iter = table->NewIterator();
// for (iter->Seek("foo"); !iter->done(); iter->Next()) {
// process(iter->key(), iter->value());
// }
// delete iter;
class GargantuanTable_Iterator {
...
};如果你觉得已经在文件顶部详细描述了该类,想直接简单的来上一句“完整描述见文件顶部”也不打紧,但务必确保有这类注释.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-35033-19.html