加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 在循环中声明变量是否有效?

发布时间:2020-12-16 09:45:09 所属栏目:百科 来源:网络整理
导读:参见英文答案 Difference between declaring variables before or in loop?????????????????????????????????????25个 ???????????? Is there any overhead to declaring a variable within a loop? (C++) ????????????????????????????????????13个 如果我
参见英文答案 > Difference between declaring variables before or in loop?????????????????????????????????????25个
>???????????? Is there any overhead to declaring a variable within a loop? (C++) ????????????????????????????????????13个
如果我执行以下操作之一(我假设这个问题与此问题相同)

for(int i=0; i<A; i++)
{
  //... do stuff
  for(int j=0; j<B; j++)
  {
    //... do stuff
  }
  //... do stuff
}

for(int i=0; i<A; i++)
{
  int j;
  //... do stuff
}

每个循环都会在堆栈上重新创建变量j(每个循环都会不断更新SP),或者编译器足够聪明,可以知道函数一次可以有多少局部变量,然后为所有这些变量腾出空间在函数入口的堆栈上?

我理解这在理论上是依赖于编译器的,但我认为这样的简单事情在所有主要编译器中都很常见.如果没有,有人特别了解GCC和VC编译器吗?

解决方法

我相信变量只会创建一次,虽然我不在乎,我也不相信你应该.

这可能是您的预优化(或不必要的优化)的一个例子;通过在循环中声明变量而产生的潜在低效率非常小,并且通过在不同位置声明变量来“优化”代码将对程序的整体运行时和内存使用产生微不足道的影响.

考虑花时间优化算法并找到有效的数据结构,因为这可能会更好地利用您的时间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读