高质量C++编程(二)表达式和基本语句

与零值比较

1 布尔变量与零值比较

  1. //直接使用变量名判断  
  2.   
  3. 推荐风格  
  4. if (flag) // 表示flag 为真  
  5. if (!flag) // 表示flag 为假  
  6.   
  7. 不良风格  
  8. if (flag == TRUE)  
  9. if (flag == 1 )  
  10. if (flag == FALSE)  
  11. if (flag == 0)  

2 整型变量与零值比较

  1. //用“==”或“!=”直接与0 比较  
  2.   
  3. 推荐方式  
  4. if (value == 0)  
  5. if (value != 0)  
  6.   
  7. 不良风格  
  8. if (value) // 会让人误解 value 是布尔变量  
  9. if (!value)  

3 浮点变量与零值比较

  1. //使用“>=”或“<=”的形式  
  2.   
  3. if ((x>=-EPSINON) && (x<=EPSINON))  //其中EPSINON 是允许的误差(即精度)。  

4 指针变量与零值比较

  1. //用“==”或“!=”与NULL 比较  
  2.   
  3. 推荐方式  
  4. if (p == NULL) // p 与NULL 显式比较,强调p 是指针变量  
  5. if (p != NULL)  
  6.    
  7. 不良风格  
  8. if (p == 0) // 容易让人误解p 是整型变量  
  9. if (p != 0)  
  10. if (p) // 容易让人误解p 是布尔变量  
  11. if (!p)  

 

提高循环语句的效率

思想:降低循环体的复杂性

在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU 跨切循环层的次数。

  1. //低效率:长循环在最外层  
  2. for (row=0; row<100; row++)  
  3. {  
  4.     for ( col=0; col<5; col++ )  
  5.     {  
  6.         sum = sum + a[row][col];  
  7.     }  
  8. }  
  9.   
  10. //高效率:长循环在最内层  
  11. for (col=0; col<5; col++ )  
  12. {  
  13.     for (row=0; row<100; row++)  
  14.     {  
  15.         sum = sum + a[row][col];  
  16.     }  
  17. }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值