当前位置:   article > 正文

inline内联函数_inline如果小于多少行展开

inline如果小于多少行展开

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

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

int main()
{
	Sum(10,20);
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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关键字应该添加在函数的定义点前面,不能加在声明点前,声明展开没有意义)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/626927
推荐阅读
相关标签
  

闽ICP备14008679号