C++ 内联函数inline

1 内联函数与普通函数的区别?

1 内联函数;在编译过程中,就没有函数调用开销。在函数的调用点直接将函数的代码进行展开处理

从指令角度掌握函数调用堆栈详细过程_LIJIWEI0611的博客-CSDN博客

中知道,在调用函数的过程中:

(1)将函数实数从右向左压栈

(2)call指令:

  • 将下一行要执行的代码地址入栈
  • 跳转到函数入口:首先push ebp,将栈底指针入栈,然后给函数开辟栈帧

       函数执行结束后,栈帧回退。

在函数调用中,有大量的函数调用开销。如果封装的函数内容简单,函数调用的开销大于函数指令的执行时间,那么就可以使用内联函数(需要大量调用,且指令简单)。在调用点展开内联函数指令

2 内联函数不在生成相应的函数符号

3 inline 只是建议编译器把这个函数处理成内联函数,具体会由编译器处理觉得是否展开成内联函数。

注意:

   (1)如果用vs调试Debug,不会将函数展开成内联.release版本可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值