问题描述
- C++内层循环中定义变量和在外面定义比影响大吗
-
例如:for(int i=0;i<999;i++){ for(int j=0;j<999;j++); }
内层循环每次都定义j会造成多大的消耗呢
解决方案
这个需要看你具体用什么编译器。不过主流编译器(如vs和gcc)这一块优化都比较好,不会反复分配变量。
解决方案二:
以前我也有过这种担心,不过现在看完别人的评论,我有点豁然开朗了,在内层循环中定义变量到底会不会存在重复分配的问题,这涉及到编译器的优化。
解决方案三:
这种基本可以忽略吧,一般都是提倡内层这样定义
解决方案四:
没有任何区别,函数的定义是编译器的事情,运行的时候不存在什么定义,更没有什么开销。
解决方案五:
以现在的运算速度,这个消耗基本可以忽略。
解决方案六:
内层定义比较好,我猜的
解决方案七:
虽然说函数的定义是编译器的事情,这种可以基本忽略,但有时候要考虑变量的作用域
解决方案八:
你是说对编译时候的影响吗?应该是可以忽略不计的吧。。
解决方案九:
除非是类对象或者结构体对象, 在里面与外面, 开销可能会不一样.
基本数据类型, 那是一样一样的, 编译器肯定会优化这个东西.
一般来说, 在进入函数时, 所有的栈变量都分配好空间了. 所以那个for变量写在哪里都是一样的. 具体你可以看一下反汇编代码, 全部就展现在你眼前了.
解决方案十:
这种过,其实你自己做一下性能测试就清楚了,而且编译器都有各种优化开关。-O2
时间: 2024-10-02 04:53:34