inline函数简介
inline函数是由inline关键字定义的,引入inline函数的主要原因是用它代替C中复杂易错且不易维护的宏函数。
编译器对inline函数的处理方法
编译器在编译阶段完成对inline函数的处理。处理方式就是在调用inline函数处将其替换为inline函数的本体。从逻辑上说,包含下面四个步骤:
- 将inline函数体复制到inline函数调用点处(调用函数体内)。
- 为所用的inline函数中的局部变量分配内存空间。
- 将inline函数的输入参数和返回值映射到调用者的局部变量空间中。
- 如果inline函数有多个返回点,则将其转变为inline函数代码块末尾的分支(使用GOTO)。
示例代码:
// 求0~9的平方
inline int inlineFunc(int num)
{
if (num > 9 || num < 0)
return -1;
return num * num;
}
int main()
{
int a = 9;
int res = inlineFunc(a);
cout << "res:" << res