我很感興趣,這些形式的for
循環測試表達式中的哪一種更合適(從性能和良好的代碼實踐來看):`for`循環 - 性能測試表達式中的數學運算,優化
for(i = 0; i < size - 1; i++) {
do something
}
或
int decreased_size = size - 1;
for(i = 0; i < decreased_size; i++) {
do something
}
是在第一實施例計算每一次測試表達式size - 1
或不編譯器優化它到恆定值,所以沒有必要創建一個額外的變量decreased_size
?
我一直在創造一個額外的變量,但現在,看着Codeforces上的其他解決方案,我懷疑 - 是否有意義?
編譯:GCC 5.4.0版本20160609
取決於編譯器是否可以100%確定地確定「大小」在循環內不能更改。但通常這個額外的變量是浪費打字。 – Mat
構建優化的可執行文件。檢查生成的機器代碼。這是瞭解編譯器將做什麼的唯一方法。 –
第三選擇:'for(i = 0; i + 1
chux