развернуть цикл - PullRequest
       11

развернуть цикл

1 голос
/ 26 декабря 2011

оригинальный код

while(i<30){
// do something
i++;
}

развернуто пока цикл

while(i<15){
// do something twice
i+=2;
}

Не можем мы развернуть его, как показано выше. Мы всегда должны делать это как http://en.wikipedia.org/wiki/Loop_unrolling?

1 Ответ

2 голосов
/ 26 декабря 2011

В общем, ответ - нет. Это работает для 30 и 15, потому что 30 четное, но это не будет работать так же легко для нечетных чисел. «Устройство Даффа» было изобретено для общего случая. Это довольно уродливо, хотя.

...