程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言優化實例:循環中減少判斷

C語言優化實例:循環中減少判斷

編輯:關於C語言

為了讓編譯器更好地優化循環,應該盡量讓循環中減少判斷,方法之一是將判斷語句整合進表達式。還是這個例子:

for (int i = 0; i < 1000*10; i++)
{
     sum += data[i/1000][i%10];
}


假如我們需要加一個判斷,只有非負整數才需要作求和運算:
for (int i = 0; i < 1000*10; i++)
{
     if (data[i/1000][i%10] >= 0)
          sum += data[i/1000][i%10];
}


下面將這個判斷語句整合進表達式:
for (int i = 0; i < 1000*10; i++)
{
     sum += (data[i/1000][i%10] >= 0) * data[i/1000][i%10];
}


注意這種將判斷語句整合進表達式的方法不一定在任何情況下奏效。如果if條件為真的可能性很大,那麼可以考慮這樣整合;如果這樣整合讓邏輯變得很復雜,當然不建議這樣做,因為編寫簡約明了的代碼是非常重要的。最好的方法就是實際測試兩個版本的性能,然後選取性能更優的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved