直接插入
允许编译器考虑将函数调用替换为被调用函数的指令。 直接插入函数可消除调用的开销,并可实现更好的优化。 多次调用的小函数是直接插入的好候选项。
注: 指定 INLINE 选项时,还必须指定所有先前的 INLINE 选项,包括其缺省值。
可能的 INLINE 选项包括:
- 内联
- 指定是否使用直接插入。
- *关闭
- 缺省设置。 指定将不会在编译单元上执行直接插入。
- *ON
- 指定将在编译单元上执行直接插入。 如果指定了调试列表视图,那么会关闭内联。
- 方式
- 指定 inliner 是否应尝试根据其阈值和限制自动内联函数。
- *自动
- 指定内联应根据指定的 "阈值" 和 "限制" 来确定是否可以内联函数。 #pragma noinline 伪指令覆盖 *AUTO。 这是缺省情况。
- *NOAUTO
- 指定仅应将标记为直接插入的函数视为直接插入的候选函数。 标记为直接插入的函数包括为其指定了 #pragma 内联伪指令的 C 函数,使用内联关键字声明的 C++ 函数以及由语言规则标记为直接插入的 C++ 函数。
- 阈值
- 指定可作为自动内联候选项的函数的最大大小。 大小以抽象代码单元度量。 抽象代码单元的大小与函数中的可执行代码成比例 ;C 和 C++ 代码由编译器转换为抽象代码单元。
- 250
- 指定阈值 250。 这是缺省情况。
- 1-65535
- 指定从 1 到 65535 的阈值。
- *不限制
- 将阈值定义为程序的最大大小。
- 限制
- 指定函数在自动内联停止之前可以增大的最大相对大小。
- 2000
- 指定限制为 2000。 这是缺省情况。
- 1-65535
- 指定从 1 到 65535 的限制。
- *不限制
- 限制定义为程序的最大大小。 可能会迂到系统限制。
- 报告
- 指定是否使用编译器列表生成内联报告。
- *没有
- 未生成内联报告。 这是缺省情况。
- *YES
- 生成内联报告。 必须指定 OUTPUT (*PRINT) 以生成内联报告。
