inline内联函数
程序员文章站
2022-03-15 19:31:49
...
编译阶段
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关键字应该添加在函数的定义点前面,不能加在声明点前,声明展开没有意义)
上一篇: 在哪可以查询iPhone12召回计划 iphone12召回查询官网分享
下一篇: 洋葱是蒜长的吗