在這一行的短路和可讀性
if ((last_search == NULL) || (last_search != NULL && total_results != 0))
我知道,C'S短路計算規則說,只有當last_search
不爲空將它嘗試和評價||
的右側,因此它等同於寫
if ((last_search == NULL) || (total_results != 0))
,我被告知使用後有人,但還不是前者更具可讀性?編譯器也不會優化出多餘的last_search != NULL
?
不,是的。代碼越少越好。 –
注意:我寧願移動到左邊,'(NULL == last_search)...', – a1ex07
@ a1ex07我知道這只是個人偏好(我知道我最近看到了這種趨勢),但對我來說,不斷的在左邊讓閱讀變得更加困難。我讀到「如果NULL等於...」,這是錯誤的,因爲NULL是一個常數,不會改變。 「如果last_search等於...」對我來說是一種更加自然和可理解的讀物。 – twalberg