首页  /  C++教程  /  5.内联函数  /  

5.内联函数

点击打开在线编译器,边学边练

Inline内联函数

 

函数的调用,想必大家都用过,一个函数在被另一个函数调用的时候,才有生命,才会为其准备对应的内存空间,再调用完毕之后再清理释放结束。

可以看到,每一次的函数调用都会带来一些时间和空间上的花销。

而自定义函数的一个作用,也是为了提高代码的重用性,可以在需要的时候随时调用,提高开发效率。那么,一个代码本身就不多,又频繁被调用的函数,我们就该好好想想,这样做到底合算不合算了。

 

好在,C++已经帮我们考虑到这个问题,为我们提供了内联的机制,即仍然使用自定义函数,但在编译的时候,把函数代码插入到函数调用处,从而免去函数调用的一系列过程,像普通顺序执行的代码一样,来解决这个问题!

 

那么用法呢,也非常简单,只需要在函数定义的前面加上关键字inline声明就可以了

如以下代码:

#include<iostream>
using namespace std;
 
inline int Max(int a,int b)
{
    return a>b?a:b;
}
int main()
{
    cout<<Max(3,5)<<endl;
    cout<<Max(7,9)<<endl;
    return 0;
}

 

值得说明的是,内联函数的定义要在调用之前出现,才可以让编译器在编译期间了解上下文,进行代码替换。

 

除此以外,内联函数与register变量类似,仅仅是我们提给编译器的一个请求,最终是否真正会实现内联,由编译器根据情况自行选择。

 


上一课:4.函数模板