c++ - 性能:循环中的声明 VS 循环中的重新初始化

标签 c++ performance for-loop

我一直在想,找不到关于这个问题的明确答案。

想象以下两个例子。

int i;
for(i=0;i<maxLimit;i++)
{
    //code here
}

第二个例子

for(int i=0;i<maxLimit;i++)
{
    //code here
}

基本上,如果他们是那样的话,我相信两者的行为会完全相同,但考虑到这一点时,我的疑问就出现了

while(!file.EOF)
{
    for(int i=0;i<maxLimit;i++)
    {
        //code here
    }
}

当第二个例子在循环内部时,它是如何执行的?是事先声明好简单的放回0还是执行时间和里面声明一样?

我个人通常把它放在第 2 位,因为我觉得它在视觉上更好看。但我想知道如果它在一个循环内它会产生什么影响。

感谢您的回答。

最佳答案

大多数现代编译器都非常复杂,您在此级别做出的任何决定都可能没有任何区别(需要澄清的是,经过分析,编译器可能已将两者转换为相同的内部表示 - 是最有效的实现)。但是,如果您不相信,在这种情况下的黄金法则就是与分析器核实。

关于c++ - 性能:循环中的声明 VS 循环中的重新初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11164030/

相关文章:

c++ - 如何创建特殊词

c++ - 使用 Doxygen + Graphviz 可视化一个巨大的 C++ 项目

wpf - 在单独的线程上从 Excel 读取 WPF 应用程序的性能不佳

c - 在 C 中子方法内使用循环的奇怪结果

java - JLabel更新问题

c++ - c++ 日志库异步捕获高吞吐量数据的可行性?

c++ - OpenCV facedetect 示例不会加载级联分类器 xml

java httpclient 4.x 解决问题的性能指南

c# - 创建一个方法以返回另一个方法的执行时间

c++ - 将显示数组的 5 个 for 循环压缩为 1?