展开 while 循环

发布于 2024-12-22 22:06:45 字数 320 浏览 0 评论 0原文

原始代码

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

展开 while 循环

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

我们不能如上所示展开它。我们是否总是必须像 http://en.wikipedia.org/wiki/Loop_unrolling 那样做?

original code

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

unrolled while loop

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

Cant we unroll it as shown above. Do we always have to do it like http://en.wikipedia.org/wiki/Loop_unrolling ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

洛阳烟雨空心柳 2024-12-29 22:06:45

一般来说,答案是否定的。它适用于 30 和 15,因为 30 是偶数,但它不适用于奇数。 “Duff 装置” 是为了处理一般情况而发明的。不过,它非常丑陋。

In general, the answer is no. It works for 30 and 15 because 30 is even, but it would not work as easily for odd numbers. "Duff's device" was invented to deal with general case. It is quite ugly, though.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文