原始代码
while(i<30){
// do something
i++;
}
展开 while 循环
while(i<15){
// do something twice
i+=2;
}
我们不能如上所示展开它。我们是否总是必须像http://en.wikipedia.org/wiki/Loop_unrolling那样做?
原始代码
while(i<30){
// do something
i++;
}
展开 while 循环
while(i<15){
// do something twice
i+=2;
}
我们不能如上所示展开它。我们是否总是必须像http://en.wikipedia.org/wiki/Loop_unrolling那样做?
一般来说,答案是否定的。它适用于 30 和 15,因为 30 是偶数,但它不适用于奇数。“达夫装置”是为了处理一般情况而发明的。不过,这很丑陋。