比如下边代码:
#include <iostream>
using namespace std;
void echo(char x){cout<<x<<endl;}
int main()
{
echo('A');
return 0;
}在main函数中执行echo函数时,程序需要跳转到echo函数所在的内存地址中执行,结束后再回到main函数中,这就影响到了效率,考虑函数体不大,于是我们引入了内联函数(函数定义时加inline关键字):
#include <iostream>
using namespace std;
inline void echo(char x){cout<<x<<endl;}
int main()
{
echo('A');
return 0;
}这样在程序编译时,所有调用echo的地方都被替换成了echo函数体,因而在程序执行阶段,就不用跳来跳去的执行了。
另外,所有在类内定义的函数都是内联函数:
#include <iostream>
using namespace std;
class Mzwu
{
public:
void AA(){cout<<"AA()"<<endl;} //隐式内联函数
inline void BB(){cout<<"BB()"<<endl;} //显式内联函数
void CC();
};
inline void Mzwu::CC() //类定义体外声明为内联函数
{
cout<<"CC()"<<endl;
}注意:由于内联函数是实现为代码替换,所以定义为内联函数的函数体不宜过大,如果函数体过大,某些编译器就会放弃内联方式,而改用调用普通函数的方式,这样就失去了内联函数的意义了,所以,内联函数的函数体代码不宜过大,一般就是3-4行代码即可。
评论(0)
暂无评论。