C語言迴圈中減少判斷——————【Badboy】

來源:互聯網
上載者:User

標籤: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條件為真的可能性很大,那麼可以考慮這樣整合;如果這樣整合讓邏輯變得很複雜,當然不建議這樣做,因為編寫簡約明了的代碼是非常重要的。最好的方法就是實際測試兩個版本的效能,然後選取效能更優的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.