1 指针变量
在正式接口函数参数中(一般代码不强制要求),指针变量必须可以字符 p 的前缀表示。 如: int *pVariable = NULL; int **ppVariable = NULL; // 指针的指针 智能指针建议用 ptr 作为前缀或后缀。
2 循环变量
i、j、k 等是比较常用的循环控制变量。除循环变量,不允许使用单字符变量名。 简单循环中,在不引起歧义的情况下,可以使用这样简单的循环控制变量。i、j、k 也比较符合数学公式的习惯。 推荐在较长的循环体中,给循环控制取一个更富有意义的名字,例如:recordIndex。如果循环体长度较长的话,那就很容易使人忘记它代表的是什么,而且经常出现 i、j 弄混的情况。 容器的迭代器,通用名字 pos,iter 等。
3 状态变量
状态变量描述的是程序所处的状态。 至少要用比 flag 或 status 之类更好的名称来命名状态变量。状态变量要有具体的含义:如:dataReady,reloadNeeded。
4 布尔变量
在布尔变量前加前缀 “is” 或 “has” 等。 用暗含非真即假的名字来命名布尔变量,如:isFound,isOK,isDone,isSuccess 等。不要使用类似 sourceFile 或 status 的布尔变量,可以改为 isSourceFileAvailable 或 isStatusOK。布尔变量最好使用比 isSuccess 更有意义的名字:如 isReadSuccess。 必须使用肯定的布尔变量名。除非逻辑确实需要,不要使用否定词汇的布尔变量名,如:isNotFound、isNotDone。
5 临时变量
通常临时变量用来保存中间运算结果,一般采用 lowerCamelCase。也可以在临时变量前加下划线,使变量 “临时” 含义更明确。如: _temp,_buffer,_lock;
6 重复使用变量
在某个子函数中,某一个变量可能重复被使用,而且在各个程序段含义不一样。例如:buffer,errorDesc,errorCode。 在子函数开始位置统一定义,并有注释。 根据其用途取一个合适的名字。