后来想了一想,可能是VC6.0和VS2005对代码进行了优化,使得i++和++i的执行效果是一样的。为了验证我的猜测,我又分别在VC6.0和VS2005上跑了一段代码,如下;
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
int i=0;
double start,end;
start=clock();
while (i>=0)i++;
end=clock();
cout<<"i++的执行时间:"<<(double)(end-start)/(double)CLK_TCK<<endl;
i=0;
start=clock();
while (i>=0)++i;
end=clock();
cout<<"++i的执行时间:"<<(double)(end-start)/(double)CLK_TCK<<endl;
return 0;
}
让我惭愧的是,我猜错了。VC6.0的运行结果是
VS2005的运行结果是
Saloris下用G++的运行结果是
哭了,在Windows下执行效果不同,而在Saloris下执行结果却相同,