inline限定符

  • 在函数定义中使用,将函数声明为内联函数,在该函数的调用处直接展开

  • 特点

    • 只是一个对编译器的建议

    • 只适合在功能简单的函数处定义,不能包含forwhileswitch,并且不是递归函数

    • inline编译器展开,而不是链接时,所以内联函数和其调用函数必须在同一个编译单元

    • 定义在 classstructunion 内的函数,不管是不是friend,都会被隐式的声明为内联

    • 构造析构 函数不一定是内联的

    • 虚函数表现出多态性不是内联的,多态处在运行期,编译器不知道运行时虚函数会调用哪个代码

  • 优点

    • 和宏一样在被调处展开,省去了参数压栈、栈帧的开辟与回收、结果返回等过程,能够提高函数的执行效率

    • 可以进行 安全检查类型检查,而宏不会

    • 可以作为函数被调试

  • 缺点

    • 若函数体代码比较长,内联将导致高内存消耗(无论被调用多少次,都会将内联函数展开

    • 若函数的 执行调用 的开销大,那么内联的效率收获就很低

  • 参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值