一、内联函数和非内联函数的定义
1、内联函数
inline void test();
void test()
{
cout<<"test"<<endl;
}
内联函数的关键字, inline
2、非内联函数
void test();
void test()
{
cout<<"test"<<endl;
}
二、两者的区别
1、代码掉用的区别
内联函数是直接拷贝函数内中的代码区到调用的地方,非内联函数是调用,就是使用goto语句一样。
2、效率上
使用内联函数速度比较快,使用内联函数调用的时候不会出现函数的跳转,使用非内联函数速度慢。
3、内存上
使用内联函数,如果出现for,while等循环,语句比较长的内联函数,那么较长的代码会重复的复制好多次,会出现代码的体积增大。
所以内联函数在使用上很有讲究。
三、内联函数在类的使用方式
class A
{
public:
inline void prfun();
void setX(int x)
{
this->x=x;
}
private:
int x;
};
void A::prfun()
{
cout<<this->x<<endl;
}
在类中,如果类的成员方法直接在类中实现,默认是内联函数。