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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |