41.VC(custom)-统一编码命名规则
2011-10-09 13:12
218 查看
1. #define 保护
所有头文件都应该使用
#define 防止头文件被多重包含, 命名格式当是:<PROJECT>_<PATH>_<FILE>_H_
项目 SkinTK中的头文件 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
11.
函数命名, 变量命名, 文件命名应具备描述性; 不要过度缩写. 类型和变量应该是名词, 函数名可以用 “命令性” 动词.
12.变量命名:
变量名一律小写, 单词之间用下划线连接. 类的成员变量以下划线结尾, 如:
Warning
全局变量:对全局变量没有特别要求, 少用就好, 但如果你要用, 可以用
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.函数命名:
16.对那些临时的, 短期的解决方案, 或已经够好但仍不完美的代码使用 TODO 注释.
所有头文件都应该使用
#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.
相关文章推荐
- C#命名规则和编码规范
- Windows与VC命名规则
- C#命名规则和编码规范
- 编码规范||命名规则
- VC命名规则
- 《疯狂Java讲义(第3版)》.(李刚)——java命名规则及编码规范
- .net官方编码方法和命名规则
- VC中的缩写(一)-匈牙利命名法以及常见命名规则
- VC命名规则
- Windows与VC命名规则
- C#编码命名规则
- 团队项目开发"编码规范"之七:控件命名规则
- 编码规范之命名规则---变量名定义规则
- CSS中id与class命名规则及编码最佳习惯
- C#中的命名规则与编码规范
- VC命名规则
- CSS中id与class命名规则及编码最佳习惯
- VC编程命名规则---[ 匈牙利命名法]
- VC 命名规则
- C#编码命名规则