一.什么是内联函数
- 使用
inline关键字
修饰函数的声明或者实现,可以是使函数变为内联函数.
inline int sum(int a, int b);
inline int sum(int a, int b)
{
return a + b;
}
二. 特点
- 特点:编译器会将函数调用直接展开为函数体代码(不走函数调用,在汇编中不会出现
call
指令;直接复制代码) - 优点:减少函数调用的开销.
- 缺点:如果该函数需要调用多次,那么会造成代码多次复制,增大二进制体积
所以: 内联函数适合调用频繁和代码数量比较小的地方使用
三. 内联函数和宏定义
内联函数和宏定义很相似,都可以减少函数调用的开销
但是宏只是简单替换,二内联函数比宏定义多了语法检测和函数特性
四.注意点
- 注意:即使声明为内联函数,也不一定会被编译器内联,例如递归函数
网友评论