1.概念:
内联类似于宏定义,当程序执行到内联函数时,相当于复制了一份函数代码。牺牲代码空间,赢得了时间
内联说明只是向编译器发出一个请求,编译器可以选择忽略这个请求
2.关键字:inline
声明时写了inline,定义时可省略。建议声明和定义都加上inline
inline int add(int a,int b)
{
return a+b;
}
3.内联的优、缺点:
优点:避免了函数调用的开销,加快了代码的运行速度,避免频繁调用函数对栈内存带来的消耗
缺点:浪费代码空间
4.使用内联的情况
不宜使用内联的情况:递归函数、或函数中含有循环结构(浪费时间)、或函数代码过长(消耗内存)
可使用内联的情况:内联一般在类中使用(函数内进行简单的赋值、或直接返回数据、或1~5条小语句)
内联函数定义建议放在头文件中,但是不强制要求
总结:内联机制用于优化规模较小,流程直接,频繁调用的函数
5.显式内联、隐式内联
隐式内联:结构体或类中的函数在结构体中声明并定义,并且如果这个函数不复杂,那么其是隐式内联的(编译器自动