内联函数

什么是内联函数?

内联函数是C++中的一种特殊函数,它可以像普通函数一样被调用,但是在调用时并不通过函数调用的机制,而是通过将函数体直接插入调用处来实现的。

在函数规模很小的情况下,函数调用的时间开销可能相当于甚至超过执行函数本身的时间,把它定义为内联函数,可大大减少程序运行时间。

如何提高运行时间?

  • 答案:内联函数同宏函数一样将在被调用处进行代码展开,省去了参数压栈、栈帧开辟与回收,结果返回等,从而提高程序运行速度。

使用内联函数的好处?

  • 回答:使用内联函数可以大大减少由函数调用带来的开销,从而提高程序的运行效率。是一种用空间换时间的方法。

内联函数的使用:在生明或定义函数时在头部上加上inline关键字即可。

inline  返回值类型  函数名(函数参数){
 //此处定义函数体
}

// 类内定义,隐式内联
class A {
    int doA() { return 0; }         // 隐式内联
}

// 类外定义,需要显式内联
class A {
    int doA();
}
inline int A::doA() { return 0; }   // 需要显式内联

使用注意事项

  • 内联函数不能包括复杂的控制语句,如循环语句和switch语句。
  • 只能将规模很小(一般5个语句以下)而使用频繁的函数声明为内联函数。

内联函数和宏定义的区别

  1. 内联函数在代码展开时,会做安全检查或自动类型转换(同普通函数),而宏定义则不会。
  2. 内联函数可以访问类的成员变量,宏定义则不能。
  3. 内联函数在运行时可调试,而宏定义不可以。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值