C / C++ 编程规范
2018-12-24 Version 1.0 by Liu Penghua @ SYSU & Yao Yao @ CUG
1. 代码可读性
1.1. 命名规范
1.1.1. 函数命名规则(驼峰命名法)
普通函数的函数名由若干个单词组成,第一个单词全部小写,第二个单词开始首字母大写。
bool getMeanValue(...);
int csvToShp(...);
double** computeUrbanConversionMatrix(...);
a. 如果是 inline 类型的函数,在函数名前加下划线 _
inline int _getCuberInterpolationValue(…);
b. 如果是 static 类型的函数,函数名第一个单词首字母大写
static int OpenFiles(…);
1.1.2. 变量命名规则(匈牙利命名法)
- 原则 1:禁止使用简单英文单词命名变量,如
min
,max
,left
,right
,会造成和某些库保留变量名的冲突 - 原则 2: 变量作用域(w/m/无) + 指针/数组(p/pp/ppp/无) + 变量类型(c/u/n/f/d/s/v 等) + 变量名称
- 原则 3:迭代变量允许但不推荐
i
,j
,k
,m
,n
。但尽量使用有意义的迭代变量名称,如:_nFilesIdx
,_nUser_i
、nMember_i
表 1 变量作用域命名规则
变量作用域 | 前缀 | 例子 | 意义 |
---|---|---|---|
全局变量 | w | wnValue | 全局 int 型变量 |
静态变量 | S (大写) | SnValue | 静态 int 型变量 |
类变量 | m | mnValue | 类 int 型变量 |
普通变量 | 不需要 | nValue | int 型变量 |
临时变量 | _ | _nValue | 临时 int 型变量 |
表 2 指针/数组命名规则
指针/数组 | 前缀 | 例子 | 意义 |
---|---|---|---|
一维 | p | pdValues | 普通一维 double 型数组 |
二维 | pp | ppdValues | 普通二维 double 型数组 |
三维 | ppp | pppdValues< |