C++內联函数的原理与使用

C++內联函数是调整程序性能的一个重要方法

在C++中,函数调用需要建立栈环境,进行参数的复制,保护现场,回复现场等,这些工作都是比较大的开销。程序的效率因此收到很大的影响。所以现在很多程序运行的额外工作都已经硬件化了,来减少运行的开销。尽管如此,仍有一些细微的开销可以优化,当然,如果对于一个函数的调用很频繁,那就需要內联函数来优化。

內联函数原理:

如果一个函数频繁的被程序调用,则会很浪费时间来进行函数的频繁调用。內联函数的基本思想就是将內联函数直接放在程序运行处,相当于直接将函数代码放在被调用处。不影响链接,只在编译时运行特定的代码。


例程:

#include <iostream>
#include <time>

using namespace std;

int cal_1(int a,int b)
{
        return a+b;
}


inline int cal_2(int a,int b)
{
        return a+b;
}
int main()
{
        int i,j,k;
        int x[1000],y[1000],z[1000];
        clock_t t1 = clock();cout<<t1<<endl;
        for( i = 0; i<1000; i++);
        for( j = 0; j<1000; j++);
        for( k = 0; k<1000; k++);
        z[i] = cal_2(x[j],y[k]);
        cout<<(clock()-t1)<<endl;
        clock_t t2 = clock();cout<<t2<<endl;
        for( i = 0; i<1000; i++);
        for( j = 0; j<1000; j++);
        for( k = 0; k<1000; k++);
        z[i] = cal_1(x[j],y[k]);
        cout<<(clock()-t2)<<endl;

}


以上例子对比內联函数与一般函数的运行时间对比。


但是并不是所有的函数都可以成为內联函数

使用场合:

1. 函数体适当小,易嵌入程序主体。

2.函数被频繁调用

3.程序中调用该函数较少,避免过多的代码重复进入程序主体。










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值