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