我在VC++中有以下代码:
for (int i = (a - 1) * b; i < a * b && i < someObject->someFunction(); i++)
{
// ...
}
据我所知,编译器会优化所有这些算术操作,并且它们不会在每次循环中执行,但我不确定它们是否能够判断上述函数每次返回相同的值,因此不需要每次调用。
是将所有计算保存到变量中更好,还是只依靠编译器优化以获得更易读的代码?
int start = (a - 1) * b;
int expra = a * b;
int exprb = someObject->someFunction();
for (int i = startl i < expra && i < exprb; i++)
{
// ...
}