内联函数的一个小问题,请教中...
VC环境下,一个内联函数性能测试的小程序如下:
#include<iostream>
#include<ctime>
using namespace std;
//----------------------------------
int calc1(int a, int b){
return a+b;
}//---------------------------------
inline int calc2(int a, int b){
return a+b;
}//---------------------------------
int main(){
int x[1000], y[1000], z[1000];
clock_t t = clock();
for(int i=0; i<1000; ++i)
for(int j=0; j<1000; ++j)
for(int k=0; k<1000; ++k)
z[i] = calc1(x[j], y[k]);
cout <<"Not using inline: " <<(clock()-t)/CLK_TCK <<" seconds\n";
t = clock();
for(int m=0; m<1000; ++m)
for(int n=0; n<1000; ++n)
for(int p=0; p<1000; ++p)
z[m] = calc2(x[n], y[p]);
cout <<" Using inline: " <<(clock()-t)/CLK_TCK <<" seconds\n";
return 0;
}//=================================
期望的输出:
Not using inline: 8.281 seconds
Using inline: 2.437 seconds
可是运行后虽然是 0 errors,0 warnings.
但是结果却是整个一个DOS黑屏,什么结果都没有!!!
问题出在什么地方了呢?请教中...