1.inline函数简介:
定义:由inline关键字来定义 | 引用的原因:用他来代替C中复杂易错不用维护的宏函数。 |
2.编译器对inline函数的处理方法
编译器是在编译阶段对inline函数作出处理,将调用动作替换为函数的本体,但是他只是一种建议,编译器可做可不做。
其逻辑处理方式一般采取如下措施:
1.将inline函数体复制到inline函数的调用点处, |
2.为所用inline函数中的局部变量分配空间 |
3.将inline函数的输入参数和返回值映射到调用方法的局部变量空间中 |
4.if inline 函数有多个返回点,将其转变为inline函数代码块末尾的分支(用GOTO) |
3.inline函数使用的一般方法
函数定义时,在返回类型前面加上inline关键字,即把函数指定为内联。函数申明处可加可不加,但是建议加上因为这样起到了“代码即注释“的作用。
inline int functionName(int first,int second,......){/* */};
if inline 只修饰了申明部分,那么该函数不能成为内联函数。
inline void foo(int x,int y);//inline与函数申明放在一起
void foo(int x,int y){}
4.inline函数的优缺点
一.内联函数对于宏函数有如下优点
1.内联函数同宏函数一样在被调用处进行代码的展开,省去了参数压