迴圈判斷外提

迴圈判斷外提  是一種的方法 。 迴圈判斷外提將回圈中的條件式移到迴圈之外 ， 在 「 若 」 與 「 否則 」 式裏各放置一個原來回圈的內容 。 這可以增進迴圈平行處理的可能性 。 以下是一個簡單的例子 。 若程式碼想要將陣列 x 、 y 相加 ， 並根據變數 w 做別的事 ， 就有這種 C 的程式碼 ： int i, w, x [ 1000 ], y [ 1000 ]; for ( i = 0; i < 1000; i + + ) { x [ i ] = x [ i ] + y [ i ]; if ( w ) y [ i ] = 0; } 因爲有迴圈裏的條件式 ， 要安全的平行處理這個迴圈變得很困難 。 若進行判斷外提 ， 這個迴圈會變成 ： int i, w, x [ 1000 ], y [ 1000 ]; if ( w ) { for ( i = 0; i < 1000; i + + ) { x [ i ] = x [ i ] + y [ i ]; y [ i ] = 0;  else { for ( i = 0; i < 1000; i + + ) { x [ i ] = x [ i ] + y [ i ];  雖然迴圈外提會讓程式碼的量加倍 ， 現在各個迴圈可以分別進行最佳化 。 迴圈外提在版本 3.4 引入 GCC 。