c++ - 在循环中声明变量是否有任何开销? (C++)

标签 c++ loops variable-declaration

我只是想知道如果你这样做会不会降低速度或效率:

int i = 0;
while(i < 100)
{
    int var = 4;
    i++;
}

声明了一百次int var。在我看来会有,但我不确定。这样做会更实用/更快吗:

int i = 0;
int var;
while(i < 100)
{
    var = 4;
    i++;
}

或者它们在速度和效率方面是否相同?

最佳答案

局部变量的堆栈空间通常在函数范围内分配。所以循环内部不会发生堆栈指针调整,只是将 4 分配给 var。因此,这两个片段具有相同的开销。

关于c++ - 在循环中声明变量是否有任何开销? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/982963/

相关文章:

c++ - 如何将 std::string 拆分为 std::string_views 的范围 (v3)?

c - atoi() 练习的问题

java - 如何迭代 HashMap 以获取每四个键值对?

c - 使用 goto 跳过变量声明?

c++ - 如何从 cstdlib 修复 stdlib.h 的 include_next?

c++ - C++中cbrt()的优化

c++ - 共享库加载和性能

Java 的 AtomicLong 实现循环

c - C mingw 中的变量声明

C错误: Expected expression before int