变量命名 た 入场券 2022-05-13 12:50 186阅读 0赞 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时要比其他数字好很多
还没有评论,来说两句吧...