变量命名

来源:互联网 发布:淘宝的一分兑换在哪里 编辑:程序博客网 时间:2024/05/22 10:24

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时要比其他数字好很多