原始代码
while(i<30){
// do something
i++;
}
循环展开
while(i<15){
// do something twice
i+=2;
}
我们不能如上图所示展开它。我们是否必须像http://en.wikipedia.org/wiki/Loop_unrolling那样做?
答案 0 :(得分:2)
一般来说,答案是否定的。它适用于30和15,因为30是偶数,但对于奇数而言它不会那么容易。 "Duff's device"是为了处理一般情况而发明的。但这很难看。