【发布时间】:2021-02-01 15:18:16
【问题描述】:
我刚刚遇到了一些代码,我不确定为什么会这样。
请注意,这是相当老的代码,所以for (auto i : x) 不是一个选项。
代码是:
INT_PTR i,c;
for(i=0,c=m_array.GetSize();i<c;i++)
{
// Do stuff, i & c are not changed inside the loop
}
我会在哪里做(我会使用单字母变量,但那是另一个论点:
const INT_PTR c = m_array.GetSize();
for (INT_PTR i = 0; i < c; i++)
{
// do stuff
}
第一种方法有一些我不知道的性能优势吗?
【问题讨论】:
-
这两种方法是相同的,唯一不同的是变量 i 的作用域
-
我会说这里的性能“优势”是开发人员在第一种情况下输入的更少。
标签: c++ performance optimization