天天看點

《編寫高品質代碼:改善c程式代碼的125個建議》——建議20-2:盡量使循環體内工作量達到最小化

本節書摘來自華章計算機《編寫高品質代碼:改善c程式代碼的125個建議》一書中的第3章,建議20-2,作者:馬 偉 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

我們知道,for循環随着循環次數的增加,會加大對系統資源的消耗。如果你寫的一個循環體内的代碼相當耗費資源,或者代碼行數衆多(一般來說循環體内的代碼不要超過20行),甚至超過一顯示屏,那麼這樣的程式不僅可讀性不高,而且還會讓你的程式的運作效率大大降低。這個時候,我們通常可以通過如下兩種方法進行優化。

1)重新設計這個循環,确認這些操作是否都必須放在這個循環裡,并仔細考慮循環體内的語句是否可以放在循環體之外,進而使循環體内工作量最小化,提高程式的時間效率。如下面的示例代碼所示:

很顯然,在上面的代碼中每執行一次for循環,就要執行一次“sum = tmp”語句來重新為變量sum進行指派,這樣的寫法很浪費資源。是以,我們完全可以将“sum = tmp”語句放在for語句之後,如下面的示例代碼所示:

這樣,“sum = tmp”語句隻執行一次,不僅可以提高程式執行效率,而且程式也具有更高的可讀性。

2)可以考慮将這些代碼改寫成一個子函數,在循環中隻調用這個子函數即可。

繼續閱讀