inline内联函数

编译阶段
inline函数
函数的调用把inline函数代码直接展开 不生成函数符号

inline int Sum(int a , int b )
{
	return a+b;
}

int main()
{
	Sum(10,20);
	return 0;
}

inline函数与普通函数处理有什么区别?
1.普通函数
函数堆栈和清栈
2.inline
直接代码展开,没有堆栈和清栈开销 效率提升

inline函数和宏的区别?
1.宏
预编译阶段处理 没有类型和安全检查
2.inline
编译阶段 有类型和安全检查 //相当于更安全的宏

inline函数和static修饰的函数的区别?
shatic:
1.有开栈和清栈的开销
inline函数
1.没有开栈和清栈的开销

inline函数的缺陷:
以空间换时间的概念设计 文件变得很庞大

inline函数的建议
1.函数体较小 函数执行的开销<小于函数清栈的开销 可使用

inline函数的注意事项
1.本文件可见 inline函数实现一般写在头文件.h中
2.inline函数只在release版本生效
3.inline只是给编译器的一个建议 //递归,循环不可设为inline函数
4.inline函数是基于实现的,不是基于声明的(inline关键字应该添加在函数的定义点前面,不能加在声明点前,声明展开没有意义)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值