<C++ primer (3rd)>
以下是Stanley B. Lippman Josée Lajoie的第 7.6 章的摘录。
指定为 inline 的函数在调用它的程序中的每个点都“行内”展开。例如,
int minVal2 = min( i, j );
在编译期间扩展为
int minVal2 = i < j ? 我:j;
因此消除了使 min() 成为函数的运行时开销。min() 通过在函数声明或定义中函数的返回类型之前指定 inline 关键字来声明内联:
内联 int min( int v1, int v2 ) { /* ... */ }
但是请注意,内联规范只是对编译器的建议。编译器可能会选择忽略此建议,因为声明为 inline 的函数不是在调用点进行扩展的良好候选者。递归函数,例如 rgcd(),不能在调用点完全展开(尽管它的第一次调用可以)。一个 1,200 行的功能也很可能不会在调用点进行扩展。通常,内联机制旨在优化小型、直线、经常调用的函数。在抽象数据类型的设计中支持信息隐藏是最重要的, 例如 2.3 节介绍的 IntArray 类及其 size() 内联成员函数。
有人可以解释标记为粗体的句子吗?