本学期的主要编码规范
本学期的主要编码规范
主要参考的是Google的C++代码规范
头文件
函数参数顺序
将所有输入参数置于输出参数之前
- 输入参数一般传值或常数引用(const references)
- 输出参数戒输入/输出参数为非常数指针(non-const pointers)
包含文件的名称及次序
C 库、C++库、其他库的.h、项目内的.h
例:
#include "foo/public/fooserver.h" // 优先位置
#include <sys/types.h>
#include <unistd.h>
#include <hash_map>
#include <vector>
#include "base/basictypes.h"
#include "base/commandlineflags.h"
#include "foo/public/bar.h"
类
声明次序
1)typedefs和enums;
2)常量;
3)构造函数;
4)析构函数;
5)成员函数,含静态成员函数;
6)数据成员,含静态数据成员。
宏 DISALLOW_COPY_AND_ASSIGN 置于private:块之后,作为类的最后部分。
其他特性
引用参数
函数形参表中,所有的引用必须的const!
const的使用
在任何可以的情况下都要使用const
命名约定
- 总体规则:不要随意缩写。除函数名可适当为动词外,其他命名尽量使用清晰易懂的名词
- 宏、枚举等使用全部大写+下划线
- 变量(含类、结构体成员变量)、文件、命名空间、存取函数等使用全部小写+下划线,类成员变量以下划线结尾,全局变量以g_开头
- 普通函数、类型(含类与结构体、枚举类型)、常量等使用大小写混合,不含下划线
格式
-
行宽原则上不超过80列
-
尽量不使用非ASCII字符,如果使用的话,参考 UTF-8 格式
-
函数参数、逻辑条件、初始化列表:要么所有参数和函数名放在同一行,要么所有参数并排分行;
-
除函数定义的左大括号可以置于行首外,包括函数/类/结极体/枚举声明、各种语句的左大括号置于行尾,所有右大括号独立成行;
-
./->操作符前后都留空格,*/&不要前后都留,一个就可,靠左靠右依各人喜好;
-
预处理指令/命名空间不使用额外缩进,类/结构体/枚举/函数/语句使用缩进;
-
初始化用=还是()依个人喜好,统一就好;
-
return不要加();
-
水平/垂直留白不要滥用,怎么易读怎么来。

浙公网安备 33010602011771号