加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C函数返回bool未执行

发布时间:2020-12-16 09:57:56 所属栏目:百科 来源:网络整理
导读:参见英文答案 Short circuit evaluation and side effects ????????????????????????????????????3个 给定一个C函数foo: bool foo(); 以及以下代码行 bool some_bool = false;some_bool = some_bool and foo(); 我观察到foo()虽然可能有副作用但没有被调用.
参见英文答案 > Short circuit evaluation and side effects ????????????????????????????????????3个
给定一个C函数foo:

bool foo();

以及以下代码行

bool some_bool = false;
some_bool = some_bool and foo();

我观察到foo()虽然可能有副作用但没有被调用.这种行为的名称是什么,它是否依赖于编译器?

解决方法

这称为 short-circuit evaluation.

在您的示例中,some_bool为false,因此语句some_bool&& foo()总是假的.所以永远不需要评估foo().

请注意,这是标准的C/C++,并不依赖于编译器,因为它可能会导致您发现的未执行的代码.

编写代码的更好方法是:

bool some_bool = false;
bool foo_result = foo();
some_bool = some_bool && foo_result;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读