C++编程入门 互动版

内联函数

这里先讲讲为什么C++要引入函数的机制。引入函数可以减少代码量:程序中多次用到某一功能,若没有函数,则用到该功能时就要把相应的代码段列出。这会导致代码量很大,引入了函数机制后,把常用功能写到一个函数中去,用到该功能时写一行调用该函数的代码就可以做到。

但是,函数的调用时要花费一定时间和空间的。特别是对于调用频繁但代码量又不大的函数而言,会降低程序的效率。C++的解决方式是将这种函数作为内联函数,在编译时,用内联函数的函数体替代调用。这也是内联函数与一般函数的区别。

#include <iostream>
using namespace std;
inline int max_int(int,int);
int main()
{
    int i,j;
    int (*pf)(int,int);
    pf=max_int;
    cout<<"请输入两个整数:"<<endl;
    cin>>i>>j;
    int max=(*pf)(i,j);
    cout<<"max="<<max<<endl;
    return 0;
}
inline int max_int(int x,int y)
{
    return x>y?x:y;
}

上例中第3行是内联函数的声明,在一般函数声明的最前面加'inline'。第15行是内联函数的定义,也要加'inline'。注意:

1.内联函数体中,不能有复杂的结构,如循环和switch等。

2.内联函数体不宜过大,只适合5行以内的小函数。

3.递归函数不能是内联函数。