面试题答案
一键面试适用场景
- 短小函数:函数体代码简短,例如简单的数学运算函数,如计算两个数之和的函数
int add(int a, int b) { return a + b; }
。因为代码量少,内联展开不会大幅增加代码体积。 - 频繁调用:在循环等频繁调用的地方,如在一个循环中不断调用的用于判断某个条件的简单函数。
性能提升原因
- 减少函数调用开销:常规函数调用需要保存寄存器、设置栈帧等操作,这些操作有一定的时间开销。内联函数将代码直接嵌入调用处,避免了这些函数调用的额外开销,从而提高执行效率。
- 优化机会增加:编译器对内联后的代码可以进行更多的优化,例如在调用处可以结合上下文进行常量折叠等优化,进一步提高性能。