+ -
当前位置:首页 → 问答吧 → 编译器优化的问题

编译器优化的问题

时间:2010-06-29

来源:互联网

本帖最后由 greensky_34 于 2010-06-29 14:12 编辑

大家讨论编译器会不会把如下的代码优化成相同的代码, 谢谢!
  1. for (i = 0; i < 1000; i++)
  2. {
  3.     for (j = 0; j < 1000; j++)
  4.     {
  5.         (data + i*x)[j*y + 0]=111;
  6.         (data + i*x)[j*y + 1]=111;
  7.         (data + i*x)[j*y + 2]=111;
  8.     }
  9. }
复制代码
  1. for (i = 0; i < 1000; i++)
  2. {
  3.     data_ptr = (data + i*x);
  4.     for (j = 0; j < 1000; j++)
  5.     {
  6.         data_ptr[j*y + 0]=111;
  7.         data_ptr[j*y + 1]=111;
  8.         data_ptr[j*y + 2]=111;
  9.     }
  10. }
复制代码

作者: greensky_34   发布时间: 2010-06-29

我觉得应该会吧。

作者: donglongchao   发布时间: 2010-06-29

会的。
编译器一个基本的优化策略就有 代码移动

作者: star1983653   发布时间: 2010-06-29

谢谢指教!

作者: greensky_34   发布时间: 2010-06-29

应该会的,编译器也是人写的,如果大多数人认为合理的东西,它没有道理不去那么做啊。

作者: wrongway88_cu   发布时间: 2010-06-29

本帖最后由 wmmy2008 于 2010-06-29 16:25 编辑

可能会哦,,反汇编看下。。

作者: wmmy2008   发布时间: 2010-06-29

不懂,很好奇

作者: 新右卫门   发布时间: 2010-06-29