1.优先级
规则1: 如果代码行中运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级
2.复合表达式
使用复合表达式的理由:书写简介,可以提高编译效率
规则1: 不要编写太复杂的复合表达式
规则2: 不要有多用途的复合表达式
规则3: 不要将复合表达式和“真正的数学表达式”混淆
3.if语句
bool变量与零值比较:
规则1: 不可将布尔变量直接与TRUE、FALSE或者1、0进行比较
正确的零值比较:
if(flag); if(!flag);
整型变量与零值比较:
规则2: 应当将整型变量用==和!=直接和0比较
正确的零值比较:
if(value == 0); if(value != 0);
浮点变量与零值比较:
规则3: 不可将浮点变量用==和!=与任何数字比较
浮点变量是有精度限制的,应该转化为<=或>=形式
正确的零值比较:
#define EPSINON 0.000001
if((x <= EPSINON)&&(x >= -EPSINON))
指针变量和零值的比较:
规则4: 应将指针变量用“==”与“!=”与NULL比较
正确的零值比较:
if(NULL == p); if(NULL != p);
4.循环语句的效率
C/C++循环语句中,for使用频率最高,while语句其次。
提高循环体的效率,其基本方法是降低循环体的复杂性。
建议1: 在多重循环中,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。
建议2: 如果多重循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断转移到循环体的外面
5.for语句的循环控制变量
规则1: 不可在for循环体内修改循环变量,防止for循环失去控制
建议1: for语句的循环控制变量的取值采取“半开半闭区间”写法
6.switch语句
规则1: 每个case语句后不要忘了加break,否则造成多个分支重叠,除非有意使分支重叠
规则2: 不要忘了最后一个default语句
7.少用、慎用goto语句
规则1: 如果代码行中运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级
2.复合表达式
使用复合表达式的理由:书写简介,可以提高编译效率
规则1: 不要编写太复杂的复合表达式
规则2: 不要有多用途的复合表达式
规则3: 不要将复合表达式和“真正的数学表达式”混淆
3.if语句
bool变量与零值比较:
规则1: 不可将布尔变量直接与TRUE、FALSE或者1、0进行比较
正确的零值比较:
if(flag); if(!flag);
整型变量与零值比较:
规则2: 应当将整型变量用==和!=直接和0比较
正确的零值比较:
if(value == 0); if(value != 0);
浮点变量与零值比较:
规则3: 不可将浮点变量用==和!=与任何数字比较
浮点变量是有精度限制的,应该转化为<=或>=形式
正确的零值比较:
#define EPSINON 0.000001
if((x <= EPSINON)&&(x >= -EPSINON))
指针变量和零值的比较:
规则4: 应将指针变量用“==”与“!=”与NULL比较
正确的零值比较:
if(NULL == p); if(NULL != p);
4.循环语句的效率
C/C++循环语句中,for使用频率最高,while语句其次。
提高循环体的效率,其基本方法是降低循环体的复杂性。
建议1: 在多重循环中,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。
建议2: 如果多重循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断转移到循环体的外面
5.for语句的循环控制变量
规则1: 不可在for循环体内修改循环变量,防止for循环失去控制
建议1: for语句的循环控制变量的取值采取“半开半闭区间”写法
6.switch语句
规则1: 每个case语句后不要忘了加break,否则造成多个分支重叠,除非有意使分支重叠
规则2: 不要忘了最后一个default语句
7.少用、慎用goto语句