1 变量名中计算限定词:Total,Sum,Average,Max,Min,Record,String,Pointer...。举例:revenueTotal,expenseTotal总支出
2 对仗工整的名词:begin/end,first/last,locked/unlocked,min/max,next/previous,old/new,opened/closed,visible/unvisible,source/target,source/destination,up/down...
3 循环下表命名
原则:简单循环也用i,j,k来表示
循环代码较长,避免忘记简单下表 i 所代表的意义,用有意义的变量名 recordNum,teamIndex使语义清晰,不容易出错
4 状态变量命名
if (flag)
if (statusFlag & 0x0F)
if (printFlag == 16)
if (computeFlag == 0)
上面的变量让人疑惑,不知道要表达的意思
if (dataReady)
if (characterType & PRINTABLE_CHAR)
if (reportType == ReportType_Annual)
if (recalcNeeded == false)
dataReady = true;
characterType = CONTROL_CHARACTER;
reportType = ReportType_Annual;
recalcNeeded = false;
C++中的状态变量
const int LETTER = 0x01;
const int DIGIT = 0x02;
enum ReportType
{
ReportType_daily,
ReportType_Monthl,
ReporType_Quarterly,
ReportType_Annual,
ReportType_All
};
5 为临时变量命名
一般的命名:temp,x,y
are = x *y;
有意义的临时变量
area = width * Length;
6 为布尔变量命名
done:表示某件事情已经完成。未完成把done设置为false
error:表示有错误发生。错误发生之前把error设置为false
found:表示某个值已经找到。没找到把found设置为false
success/OK :表示一项操作成功。没有成功则设置为false
原则:给布尔变量赋予隐含 ”真/假“含义的名字,像done 要么是完成true要么是未完成false
使用肯定的布尔变量名,通常notfound在逻辑判断时要难于found
使用 Isdone ,Iserror...在这些名词前加上Is来表示bool变量,但这样的可读性要比直接使用done,error..差了很多
7 枚举变量
使用枚举类型的时候,可以通过使用组前缀如Color_,Planet_或者Month_来表示该类型的成员同属于一个组。
enum Color
{
Color_Red,
Color_Yellow,
Color_Blue
};
如果使用语言有Color.Color_Red 这样的形式时就没必要加前缀Color
为什么要使用枚举变量?
1 >提高可读性
if (Color == 1)
if (Color == Color_Red) //
2>函数调用用枚举更好,提高可读性
RetrievePayrollData(data, true, false, false, true);
RetrievePayrollData(
data,
EmploymentStatus_CurrentEmployes,
PayrollType_Salaried,
SavingsPlan_NoDeduction,
MediacalCoverage_IncludeDependents
);
3>用枚举类型简化修改:枚举代替字面值 1, 2,3...
4>将枚举类型作为布尔变量的替换方案:布尔值只有true或false,当程序中增加第三种第四种状态时就显得不适用了
怎样定义枚举变量的第一项和最后一项?
enum Country
{
Country_First = 0,
Country_China = 0,
Country_Enland = 1,
Country_France = 2,
Country_Germany = 3,
Country_Last =3
};
Country_First和Country_Last作为边界值。
注意:把枚举类型的第一个元素留作非法值。因为第一项往往默认为0,那么出错时为0时要比其他数字好很多