无论如何下面的陈述是什么?混淆'if'陈述
这让我感到困惑。我很惊讶C允许您在if
语句中使用条件运算符。有没有更好的办法?
我发现if
语句中的条件运算符太混乱。我可以尝试使用& &和||操作员,但恐怕我可能犯了一个错误。
如何将下面的语句重写为更简单的形式?
if ((offset < 0) ?
(input->binData.bounds.lo >= (unsigned long)(-offset)) :
(input->binData.bounds.hi < (unsigned long)(-offset)))
我在BitHoist开源软件包中发现了这行C代码。
我完全赞成你,这个代码是不必要的钝角。尽管听起来你已经有了答案。我不知道C是否真的有助于清理这个问题,但我觉得应该将整个条件解压到它自己的函数中,并且“父”条件应该检查该函数的输出。 – David 2012-07-23 01:53:16