相关疑难解决方法(0)

编译器会优化转义内循环吗?

我的代码看起来像这样(显示完成的所有用法):

bool done = false;
for(int i = 0; i < big; i++)
{
  ...
  for(int j = 0; j < wow; j++)
  {
    ...
    if(foo(i,j))
    {
       done = true;
       break;
    }
    ...
  }
  if(done) break;
  ...
}
Run Code Online (Sandbox Code Playgroud)

将任何编译器转换为此:

for(int i = 0; i < big; i++)
{
  ...
  for(int j = 0; j < wow; j++)
  {
    ...
    if(foo(i,j))
      goto __done; // same as a labeled break if we had it
    ...
  }
  ...
}
__done:;
Run Code Online (Sandbox Code Playgroud)

注意:虽然我最感兴趣的是如果if(done)break; …

c++ compiler-construction optimization

7
推荐指数
2
解决办法
1038
查看次数

标签 统计

c++ ×1

compiler-construction ×1

optimization ×1