您的位置:首页 > 其它

41.VC(custom)-统一编码命名规则

2011-10-09 13:12 218 查看
1. #define 保护
所有头文件都应该使用
#define 防止头文件被多重包含, 命名格式当是:<PROJECT>_<PATH>_<FILE>_H_
项目 SkinTK中的头文件 SkinTK/SkinTK/targetver.h 可按如下方式保护:

#ifndef SKINTK_SKINTK_TARGETVER_H_
#define SKINTK_SKINTK_TARGETVER_H_

#endif//SKINTK_SKINTK_TARGETVER_H_


2. 函数参数的顺序

定义函数时, 参数顺序依次为: 输入参数, 然后是输出参数.

3.cpp#include顺序
<1>本CPP对应的.h
<2>C系统文件
<3>C++系统文件
<4>其他库的.h文件
<5>本项目的.h文件

4.使用静态成员函数或名字空间内的非成员函数, 尽量不要用裸的全局函数.以免污染全局作用域.
5.将函数变量尽可能置于最小作用域内, 并在变量声明时进行初始化.应使用初始化的方式替代声明再赋值
6.禁止使用
class 类型的静态或全局变量: 它们会导致很难发现的 bug 和不确定的构造和析构函数调用顺序.
7.仅当只有数据时使用
struct, 其它一概使用class.
8.在类中使用特定的声明顺序:
public: 在private: 之前, 成员函数在数据成员 (变量) 前;
9.类中的声明顺序:
每个区段内的声明通常按以下顺序:

typedefs 和枚举

常量

构造函数

析构函数

成员函数, 含静态成员函数

数据成员, 含静态数据成员

声明次序:
public -> protected ->
private;

10.所有按引用传递的参数必须加上
const

void Foo(const string &in, string *out);


11.
函数命名, 变量命名, 文件命名应具备描述性; 不要过度缩写. 类型和变量应该是名词, 函数名可以用 “命令性” 动词.
int num_errors;                  // Good.
int num_completed_connections;   // Good.


12.变量命名:
变量名一律小写, 单词之间用下划线连接. 类的成员变量以下划线结尾, 如:

string table_name;  // OK - uses underscore.
string tablename;   // OK - all lowercase.


Warning

string tableName;   // Bad - mixed case.


全局变量:对全局变量没有特别要求, 少用就好, 但如果你要用, 可以用
g_ 或其它标志作为前缀, 以便更好的区分局部变量

常规函数:函数名的每个单词首字母大写, 没有下划线

取值和设值函数:取值和设值函数要与存取的变量名匹配

int
num_entries()const{
returnnum_entries_;}

void
set_num_entries(intnum_entries){num_entries_
=num_entries;}

13.枚举命名

单独的枚举值应该优先采用

常量 的命名方式. 但
宏 方式的命名也可以接受. 枚举名 UrlTableErrors (以及AlternateUrlTableErrors) 是类型, 所以要用大小写混合的方式.

14.常量命名:
有编译时常量, 无论是局部的, 全局的还是类中的, 和其他变量稍微区别一下.
k 后接大写字母开头的单词

const int kDaysInAWeek = 7;

15.函数命名:

enum UrlTableErrors {
kOK = 0,
kErrorOutOfMemory,
kErrorMalformedInput,
};


16.对那些临时的, 短期的解决方案, 或已经够好但仍不完美的代码使用 TODO 注释.

// TODO(kl@gmail.com): Use a "*" here for concatenation operator.
// TODO(Zeke) change this to use relations.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: