Dotcpp  >  编程教程  >  C++函数调用与重载、内联  >  C++内联函数inline实例详解

C++内联函数inline实例详解

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

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变量类似,仅仅是我们提给编译器的一个请求,最终是否真正会实现内联,由编译器根据情况自行选择。



本文固定URL:https://www.dotcpp.com/course/63

上一课:

C++函数模板

C++教程
第一章 C++入门
第二章 C++表达式和控制语句
第三章 C++函数调用与重载、内联
第四章 C++类和对象
第五章 C++继承与派生
第六章 C++多态性
第七章 C++异常处理
第八章 C++文件操作
Dotcpp在线编译      (登录可减少运行等待时间)