| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1743 人关注过本帖
标题:内联函数的测试
取消只看楼主 加入收藏
parksun
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-14
收藏
 问题点数:0 回复次数:3 
内联函数的测试

#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;
}
//-----------------------------------------
void main()
{
int x[1000],y[1000],z[1000];
clock_t start,finish;
double dtime;
start = 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]);
finish = clock();
dtime = finish - start;
cout<<"not using inline: "<<dtime<<" seconds\n";
start = clock();
for(int i=0; i<1000; ++i)
for(int j=0; j<1000; ++j)
for(int k=0; k<1000; ++k)
z[i] = calc2(x[j],y[k]);
finish = clock();
dtime = finish - start;
cout<<" using inline: "<<dtime<<" seconds\n";
} 怎么输不出结果,编译时i重定义了,没有重定义呀!谁能帮我分析以下.
using namespace std;
//----------------------------------------
int calc1(int a,int b)
{
return a+b;
}
//-----------------------------------------
inline int calc2(int a,int b)
{
return a+b;
}
//-----------------------------------------
void main()
{
int x[1000],y[1000],z[1000];
clock_t start,finish;
double dtime;
start = clock();
for(int i=0; i<1000; ++i)
for(int j=0; j<1000; ++j)
z[i] = calc1(x[i]y[j]);
finish = clock();
dtime = finish - start;
cout<<"not using inline: "<<dtime<<" seconds\n";
start = clock();
for( i=0; i<1000; ++i)
for(int j=0; j<1000; ++j)
z[i] = calc2(x[i],y[j]);
finish = clock();
dtime = finish - start;
cout<<" using inline: "<<dtime<<" seconds\n";
}修改后能输出结果了,但是有时使用内联函数运行所需的时间比不使用还要多,谁能解释以下.

搜索更多相关主题的帖子: 内联 函数 
2007-11-14 14:08
parksun
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-14
收藏
得分:0 
回复:(parksun)内联函数的测试

我用的是VC++6.0编译器,如果像你那样改的话就失去了程序的含义了..

2007-11-15 16:25
parksun
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-14
收藏
得分:0 
回复:(雨中飞燕)最外面一层for加一个大括号,比如:...
加不加大大括号不会影响i的作用域吧!
2007-11-15 16:28
parksun
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-14
收藏
得分:0 
回复:(雨中飞燕)谁叫你用的VC6???你爱加不加叫了...
在VC++6.0里试过了,不可以还是通不过,解释一下,谢谢了,顺便推荐个编译器我试一下....
2007-11-15 16:48
快速回复:内联函数的测试
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021521 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved