高质量C++编程指南学习笔记3-4章---thanks to林锐

来源:互联网 发布:finale软件 编辑:程序博客网 时间:2024/05/18 01:58

第三章     命名规则

命名规则应该是给变量、函数和类的命名规则。耳闻过“匈牙利”命名规则。其主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。如所有字符变量都以’ch’为前缀。若一个变量由ppch开头,则说明它是指向字符指针的指针。“匈牙利”法最大的缺点就是繁琐,如int i, j, k;若用“匈牙利”命名规则,则应是int iI, iJ, iK;

31共性规则

【规则3-1-1】标识符应直观,可望文知意。

【规则3-1-2】命名规则尽量与所采用的操作系统或开发工具的风格保持一致。Windows应用程序的标识符通常采用“大小写”混排的方式,如AddChild。而Unix应用程序的标识符通常采用“小写加下划线”的方式,如add_child

【规则3-1-3】不要出现标识符完全相同的局部变量和全局变量。

【规则3-1-4】变量的名字当用“名词”或“形容词+名词”。全局函数的名字当用“动词”或“动词+名词”。类的成员函数当只用“动词”,被省略掉的名词就是对象本身。

【建议3-1-1】尽量避免名字中出现数字编号。

32简单Windows应用程序命名规则

【规则3-2-1】类名和函数名用大写字符开头的单词组合而成。

【规则3-2-2】变量和参数用小写字母开头的单词组合而成。

【规则3-2-3】常量用全大写的字母,用下划线分隔单词。

【规则3-2-4】静态变量加前缀s_(表示static)。

【规则3-2-5】若不得已需用全局变量,则使全局变量加前缀g_(表示global)。

【规则3-2-6】类的成员加前缀m_(表示member)。

【规则3-2-7】为防止某一软件库中的一些标识符和其他软件库中的冲突,可为各种标识符加上能反映软件性质的前缀。如三位图形标准库OpenGL的所有库函数均以gl开头,所有常量(或宏定义)均以GL开头。

   第四章 表达式和基本语句

运算符的格式第二章已经讲了啊,这章难道讲规则?

41运算符的优先级

一元运算符的+-*优先级高于对应的二元运算符。

【规则4-1-1】若代码行中运算符较多,用括号确定表达式的操作顺序,避免使用默认的优先级。

42复合表达式

a=b=c=0这样的表达式称为符合表达式。

   【规则4-2-1】不要编写太复杂的符合表达式。

【规则4-2-2】不要有多用途的符合表达式。

【规则4-2-1】区分符合表达式和数学表达式。

43if语句:本节以“与零值比较”为例。

【规则4-3-1】对布尔值flag,它与零值比较的标准if语句:if (flag)/if (!flag)

【规则4-3-2】整型变量与零值比较。if (value==0)/if (value!=0),不用if (value)/if (!value),会被人误解value是布尔型。

【规则4-3-3】不可将浮点变量用”==””!=”与任何数字比较。因floatdouble类型都有精度限制。应设法转换为”>=””<=”形式。假设浮点变量名为x,应将if (x==0.0)转化为if ((x>=-EPSION) && (x<=EPSION))其中EPSION是允许的误差(即精度)

【规则4-3-4】指针变量与零值比较。if (p==NULL)/if (p!=NULL)

额外说明:

44循环语句的效率

         提高循环体效率的基本方式是降低循环体的复杂性。

   【建议4-4-1】在多重循环中,尽量将最长的循环放在最内层,最短的放在最外层,以减少CPU跨切循环层的次数。

   【建议4-4-2】若在循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。

45for语句的循环控制变量

   【规则4-5-1】不可在for循环体内修改循环变量,防止for循环失去控制。

   【建议4-5-1】建议for语句的循环控制变量的取值采用“半开半闭区间”写法。

46switch语句

   【规则4-6-1】每个case语句的结尾+break,否则将导致多个分支重叠。

   【规则4-6-2】不要忘了最后那个default分支。即使不需default处理,也该保留语句default : break;以防别人误以为你忘了default处理。

47goto语句:慎用。

 

总结:这章主要是表达式和基本语句的一些使用规则及部分版式建议。