無論如何下面的陳述是什麼?混淆'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