MST

星途 面试题库

面试题:C语言内联函数的适用场景

请阐述在C语言中,内联函数通常适用于哪些场景,以及为什么在这些场景下使用内联函数会带来性能提升?
50.3万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试

适用场景

  1. 短小函数:函数体代码简短,例如简单的数学运算函数,如计算两个数之和的函数int add(int a, int b) { return a + b; }。因为代码量少,内联展开不会大幅增加代码体积。
  2. 频繁调用:在循环等频繁调用的地方,如在一个循环中不断调用的用于判断某个条件的简单函数。

性能提升原因

  1. 减少函数调用开销:常规函数调用需要保存寄存器、设置栈帧等操作,这些操作有一定的时间开销。内联函数将代码直接嵌入调用处,避免了这些函数调用的额外开销,从而提高执行效率。
  2. 优化机会增加:编译器对内联后的代码可以进行更多的优化,例如在调用处可以结合上下文进行常量折叠等优化,进一步提高性能。