woaidongmao

文章均收录自他人博客,但不喜标题前加-[转贴],因其丑陋,见谅!~
随笔 - 1469, 文章 - 0, 评论 - 661, 引用 - 0
数据加载中……

聪明反被聪明误,一个bug

愿望是:在执行一个迭代过程中,所有foo()的调用都返回TRUE,bSuccess才为TRUE. 写成了如下的代码,真是机关算尽太聪明,反算了卿卿性命。

 

BOOL foo(int index);

 

BOOL bSuccess = TRUE;

for(int i = 0; i < value; ++i)

{

    bSuccess = (bSuccess && foo(i));

}

posted on 2008-11-20 16:32 肥仔 阅读(1481) 评论(7)  编辑 收藏 引用 所属分类: C++ 基础

评论

# re: 聪明反被聪明误,一个bug  回复  更多评论   

这段代码有问题吗?
如果说foo一定要执行value次才算有问题吧。
感觉,一次错了,剩余的foo也不会执行,岂不是正和楼主之意?
2008-11-20 16:58 | freeion

# re: 聪明反被聪明误,一个bug  回复  更多评论   

bSuccess = ( foo(i) && bSuccess);

这样每个索引就都会调用过foo了
2008-11-20 17:11 | AAAAAA

# re: 聪明反被聪明误,一个bug  回复  更多评论   

为什么要前一次错了,以后还要执行呢?不执行不是更好?
2008-11-20 17:14 | freeion

# re: 聪明反被聪明误,一个bug  回复  更多评论   

@freeion
不执行完所有的foo可能会有副作用吧 你也不知道foo里面到底执行了什么
2008-11-20 17:52 | thermos

# re: 聪明反被聪明误,一个bug  回复  更多评论   

@AAAAAA
That's it!
2008-11-20 18:05 | 飘过

# re: 聪明反被聪明误,一个bug  回复  更多评论   

&&换成&不就得了
2008-12-02 21:04 | brian

# re: 聪明反被聪明误,一个bug  回复  更多评论   

@brian
牛,确实太油才了
2008-12-03 10:56 | 肥仔

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理