当前位置: 代码迷 >> C# >> 关于以次这几句话的解读,看看大家的意见
  详细解决方案

关于以次这几句话的解读,看看大家的意见

热度:86   发布时间:2016-05-05 03:20:28.0
关于以下这几句话的解读,看看大家的意见
//从一个写C++的文章哪里看来的,为什么别人这么说呢?

BOOL flag;  
…  
if(flag) { // do something } // 正确的用法  
if(flag==TRUE) { // do something } // 危险的用法  
if(flag==1) { // do something } // 危险的用法  
if(!flag) { // do something } // 正确的用法  
if(flag==FALSE) { // do something } // 不合理的用法  
if(flag==0) { // do something } // 不合理的用法  
------解决思路----------------------
1、不存在“不合理的用法”
2、不是“危险的用法”而是“危险的写法”,假如漏掉一个 = 就变成赋值了。控制流程就发生了变化
------解决思路----------------------
if(flag) { // do something } // 正确的用法  应该是说简单的用法,不需要写一大堆==,本身就是bool量,直接用就好
if(flag==TRUE) { // do something } // 危险的用法  如果你写成=,那么就变成赋值语句了,==false同理
if(flag==1) { // do something } // 危险的用法  一点也不危险,根本语法都通不过,编译器报错

与false判断同上,没有什么不合理的,存在即合理
------解决思路----------------------
引用:
1、不存在“不合理的用法”
2、不是“危险的用法”而是“危险的写法”,假如漏掉一个 = 就变成赋值了。控制流程就发生了变化


同意斑竹的漏等号赋值说法~~

另外,既然定义bool flag,就不要跟0-1比较。。。相反,C++一般可以把0-1作为条件,0为false,非0为true。。比如
int count;
if(count){//dosomething;}
if(count==0){//dosomething;}
  相关解决方案