循环无法展开的情况是什么?

时间:2014-05-21 17:26:15

标签: c cuda opencl

无法展开循环的情况是什么?我一直在阅读一篇论文,其中显示了一个无法展开的循环。我实际上无法发布特定的代码,因为它是私有的,但是,我想知道是否有一些明显的东西我无法展开。

提前致谢。如果我可以尝试提供任何其他信息,请告诉我。

1 个答案:

答案 0 :(得分:2)

你可以用它中的任何类型的递归来展开一个循环,因为它可能是无限长的,你也不能展开一个无限循环或一个用某种方法来突破那个不是很长的循环增量

递归:

 method(int x){
 if(x > 0)
     return 0;
 else
     return method(x-1);

无限循环:

 while(true){
 ...
 if(some condition)
     break;
 }

最后一个:

 boolean somevar = true;

 while(somevar){
 ...
 if(some condition)
      somevar = false;
 }