inline_depth pragma

指定内联启发式搜索深度。 调用图中大于指定值的深度函数不会进行内联。

语法

#pragma inline_depth( [ n ] )

备注

此 pragma 控制对标记为 inline__inline 的函数的内联,或者在 /Ob 编译器选项下自动内联。 有关详细信息,请参阅 /Ob(内联函数展开)

n 可以是介于 0 和 255 之间的一个值,其中 255 表示调用图中的深度不受限制。 零值表示禁止内联展开。 如果没有指定 n,则使用默认值 254。

inline_depthpragma 控制可以展开一系列函数调用的次数。 例如,假设内联深度为 4。 如果 A 调用 B,然后 B 调用 C,则所有三种调用为展开的内联。 但是,如果最接近的内联深度展开为 2,则仅展开 A 和 B,而 C 作为函数调用保留。

若要使用此 pragma,必须将 /Ob 编译器选项设置为 1 或更大的值。 使用该 pragma 的深度设置在该 pragma 后进行第一个函数调用时生效。

可在展开过程中减小内联深度,但不能增大该深度。 如果内联深度为 6,并且在展开期间,预处理器遇到值为 8 的 inline_depthpragma,则深度保持为 6。

inline_depthpragma 对使用 __forceinline 标记的函数无效。

注意

可对递归函数进行内联替换,最大调用深度为 16。

另请参阅

Pragma指令和__pragma_Pragma关键字
inline_recursion