C++内联函数

来源:互联网 发布:冰点文库下载器mac版 编辑:程序博客网 时间:2024/06/08 08:13

         C++引入内联函数(inline)函数的原因是用它来取代C中的预处理宏函数。

         内联函数和宏函数的区别:宏函数是由预处理器对宏进行替换,而内联函数是通过编译器实现的,因此内联函数是真正的函数,只是在调用的时候,内联函数像宏函数一样展开,所以它没有一般函数的参数压栈和退栈操作,减少了调用开销,因此,内联函数比普通函数执行效率更高。

         在C++中使用关键字inline来定义内联函数。inline关键字放在函数定义(声明)中函数类型之前。

         注:编译器会将在类的说明部分定义的任何函数都认定为内联函数,即使它们没有用inline说明。内联函数也有一定的局限性,就是函数中执行的代码不能怠惰,结构也不能太复杂。如果内联函数的函数体过大,编译器会放弃内联方式,而采用普通的方式调用函数。


内联函数示例:

#include<iostream>using namespace std;inline int max(int,int);int main(){    cout<<max(3,5)<<endl;system("pause");return 0;}inline int max(int x,int y){return x>y?x:y;}
关键字inline将函数max说明成内联函数。其使用方式和一般函数一样,只不过在程序执行时并不产生实际函数调用,而是在函数调用处将函数代码展开执行。



0 0