基础问题,局部变量
一、
CString sTemp;
for(int i=0;i<100;o++)
{
sTemp.Format("%d",i);
}
二、
for(int i=0;i<100;o++)
{
CString sTemp;
sTemp.Format("%d",i);
}
这两种哪个快,哪个更省内存呢? 在VC中
[解决办法]
现在不是省不省内存的问题了
你第二种方法就没意义啊,for循环后
你STemp的生命周期就结束了。
只能用第一种
[解决办法]
楼主就是想问变量的定义放在循环内会不会影响效率吧,一般用第一种
[解决办法]
[解决办法]
要是这样呢?
- C/C++ code
一、char buf[32];for(int i=0;i<100;o++){ sprintf(buf, "%d", i);}二、for(int i=0;i<100;o++){ char buf[32]; sprintf(buf, "%d", i);}
[解决办法]
与编译器的优化有关,第2种会优化为第一种。
[解决办法]
第一种的字符串只会执行一次构造和析构,第二种会执行100次
[解决办法]
[解决办法]
与接下去代码有关,若不做任何事,我曾用tchar写过第二种,发现被编译器自动优化成1了,但是cstring的话不好说,若真如胡哥所说做多次析构的话,直接比较下就能得出。
[解决办法]
第一种速度快
变量只申请一次,for中直接使用.
[解决办法]
第一种好,快,CString申请的内存是在堆中的吧,你可以去查看CString的实现。
[解决办法]
习惯第一种。