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编译器吗? 解决方法
我相信变量只会创建一次,虽然我不在乎,我也不相信你应该.
这可能是您的预优化(或不必要的优化)的一个例子;通过在循环中声明变量而产生的潜在低效率非常小,并且通过在不同位置声明变量来“优化”代码将对程序的整体运行时和内存使用产生微不足道的影响. 考虑花时间优化算法并找到有效的数据结构,因为这可能会更好地利用您的时间. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |