inline_depth
pragma
指定内联启发式搜索深度。 调用图中大于指定值的深度函数不会进行内联。
语法
#pragma inline_depth(
[ n ])
备注
此 pragma 控制对标记为 inline
和 __inline
的函数的内联,或者在 /Ob
编译器选项下自动内联。 有关详细信息,请参阅 /Ob
(内联函数展开)。
n 可以是介于 0 和 255 之间的一个值,其中 255 表示调用图中的深度不受限制。 零值表示禁止内联展开。 如果没有指定 n,则使用默认值 254。
inline_depth
pragma 控制可以展开一系列函数调用的次数。 例如,假设内联深度为 4。 如果 A 调用 B,然后 B 调用 C,则所有三种调用为展开的内联。 但是,如果最接近的内联深度展开为 2,则仅展开 A 和 B,而 C 作为函数调用保留。
若要使用此 pragma,必须将 /Ob
编译器选项设置为 1 或更大的值。 使用该 pragma 的深度设置在该 pragma 后进行第一个函数调用时生效。
可在展开过程中减小内联深度,但不能增大该深度。 如果内联深度为 6,并且在展开期间,预处理器遇到值为 8 的 inline_depth
pragma,则深度保持为 6。
inline_depth
pragma 对使用 __forceinline
标记的函数无效。
注意
可对递归函数进行内联替换,最大调用深度为 16。