欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

相关标签: C++