内敛函数(inline函数)

内敛函数(inline函数)

编译阶段,在代码的调用点直接将代码展开。

1.inline函数和static修饰的函数的区别

     1、inline函数             没有开栈和清栈的开销

           static                    有

     2、inline函数             在调用点直接代码展开

           static                    函数符号属性

2.inline函数和宏的区别

       Inline  编译时在调用点将代码展开      有类型检查和安全检查

       宏     预编译时在调用点将代码展开     没有

       inline是一种更安全的宏

3.注意事项:

  1. 实现在.h文件下写在头文件,不会写在源文件下
  2. 只在release版本下生效
  3. 给编译器的一个建议   递归,循环,switch一定不会处理成inline
  4. 基于实现,不是声明。(在声明中定义内敛,系统不会处理)

4.Inline缺点:

     以代码膨胀为代价    空间换时间(inline可以提高效率,为啥不把所有的函数都设为inline)

5.建议:

  1. 开栈的开销>执行的开销   建议为inline
  2. 开栈的开销<执行的开销   不建议为inline
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值