【发布时间】:2014-03-10 10:52:32
【问题描述】:
扩展问题 What happens if the first part of an if-structure is false?
用于 C 编程
if((NULL!=b)&&(query(&b)))
在上面的代码中,如果b=Null,“query(&b)”部分会被执行吗? 编译器之间的行为是否一致?
【问题讨论】:
-
看看这个:stackoverflow.com/questions/3958864/…。一句话:操作符会短路,这是标准的 C 行为。
-
本题所用语言不准确且含糊不清。我会假设 if construct 或 statement(不是 structure)的“第二部分”是
else部分。在这里,您只是在谈论 布尔运算的左侧 -if构造无关紧要。 -
感谢您接受我的回答,但功劳应该归于其他人(例如最先发帖的 paxdiablo),因为我只是想添加一个参考以清楚起见,而其他人则在他们的答案中投入了更多时间.
-
@jpw,功劳应该归于最佳答案,而不是第一个。不幸的是,我在获得标准文档之前就被叫走了。此类语言问题的最佳答案几乎总是引用标准的答案,所以你的答案是当之无愧的。无论如何,我不需要代表 :-)
-
@paxdiablo +1 给你 :)
标签: c if-statement compiler-construction