一、注释
1.1 单行注释
- 双斜线应与代码保持两个空格,注释内容与双斜线距离一个空格。
int num = 1; // 注释演示
- 如果注释是单独一行的,应注意与代码对齐缩进,注释内容与双斜线距离一个空格。
// 注释演示
int num = 1;
1.2 多行注释
- 使用
/* */
,同时注意与代码对齐缩进,注释内容与*
距离一个空格。
/**
* @version 1.0 2018-05-07
* @author InspAlgo
*/
二、命名
2.1 变量命名
2.1.1 普通变量命名
一律使用小写,单词之间使用下划线连接。
int person_num = 1;
double win_rate = 0.568;
2.1.2 结构体变量命名
结构体名称的每个单词首字母大写,且不使用下划线连接。结构体的数据成员变量命名与普通变量命名一致,静态类型亦如。
struct TreeNode
{
int value;
TreeNode *left_pointer;
TreeNode *right_pointer;
};
TreeNode node;
2.1.3 类变量命名
类名称的每个单词首字母大写,且不使用下划线连接。类的数据成员变量命名与普通变量命名一致,私有数据成员需要在末尾加上下划线,静态类型亦如。类的方法命名与普通函数命名一致。
class TreeNode
{
public:
int value;
int GetValue();
void Delete();
private:
TreeNode *left_pointer_;
TreeNode *right_pointer_;
};
TreeNode node;
2.2 常量及宏命名
字母全大写,单词间使用下划线连接。
const int PERSON_NUM = 5;
#define PI 3.1415926
2.3 函数命名
每个单词的首字母大写,不使用下划线连接。
void Create()
{
..
}
int GetValue()
{
..
}
2.4 文件命名
单词一律使用小写字母,单词间使用下划线连接。
../name.cpp
../input_handle.cpp
../input_handle.h
2.5 其他
- 单字母。原则上不使用单字母作为变量名,除具有普遍意义的例外,如循环中常用的
i
、j
,如果出现,则在代码例常复审时提出修改意见并修改。 - 缩写词。在多人项目时,应给出缩写词表,明确缩写词含义,亦可以是缩写词文档。
三、缩写词表
3.1 循环
使用i
、j
、k
。在表达数组位置时可以用pos_i
、pos_j
。
3.2 迭代器
使用iter
。如iter_vector
、iter_pointer
等。
3.3 变量
使用temp
表临时,cus
表当前,new
表新建,temp_node
、cus_state
、new_state
等。
3.4 指针
使用p
,如左指针left_p
、右指针right_p
等。
四、括号与换行
左括号另起一行。
void Func()
{
..
}
每行代码不超过80列 (不包含注释) ,凡超过必换行。
if (this->board_[pos_i + 1][pos_j] == 0
&& this->board_[pos_i + 2][pos_j] >= 3
&& vis_board[pos_i + 1][pos_j])
{
..
}