【发布时间】:2011-12-29 04:19:40
【问题描述】:
我对编译器了解不多,但知道它们足够复杂和智能,可以优化您的代码。假设我的代码如下所示:
string foo = "bar";
for(int i = 0; i < foo.length(); i++){
//some code that does not modify the length of foo
}
GNU 编译器是否足够聪明,能够意识到foo 的长度在此循环过程中不会改变,并用正确的值替换foo.length() 调用?或者每次i 比较都会调用foo.length() 吗?
【问题讨论】:
标签: c++ optimization gcc compiler-construction