内置函数
调用函数时需要一定的时间和空间的开销(overhead), C++提供了一种提高效率的方法,即在编译时将所调用函数的代码直接嵌入到主调函数中,而不是将流程转出去,这种函数叫内置函数,又称内联函数(inline function)。
The inline functions are a C++ enhancement feature to decrease the execution time of a program. Functions can be instructed to compiler to make them inline so that compiler can replace those function definition wherever those are being called.
注意:可以在声明函数和定义函数同时写 inline,也可以在其中一处声明 inline,效果相同,都能按内置函数处理。
使用内置函数可以节省运行时间,却增加了目标程序的长度。假设要调用10次 max 函数,则在编译时先后将 max 代码复制并插入 main 函数,这就增加了 main 函数的长度。因此,一般只将规模很小(一般为5个语句以下)而使用频繁的函数声明为内置函数。在函数规模很小的情况下,函数调用的食艰难开销可能相当于甚至超过执行函数本身的时间,把它定义为内置函数,可大大减少程序运行时间。
内置函数不能包括复杂的控制语句,如循环语句和 switch 语句。
说明:对函数作 inline 声明,只是程序设计者对编译系统提出的一个建议,是建议性的,不是指令性的。并非一经指定,编译系统就必须这样做。例如,包含循环语句和 switch 语句的函数,或者一个包含1000行的函数,也不大可能在调用点展开,此时编译系统就会忽略 inline 声明,而按普通函数处理。
归纳起来,只有那些规模较小而又频繁调用的简单函数,才适合声明为 inline 函数。