inline_depth和inline_recursion编译指令
来源:互联网 发布:端口数据采集软件 编辑:程序博客网 时间:2024/06/06 19:15
原文来自:http://www.cppblog.com/flyinghare/archive/2012/02/10/165280.html
#pragma inline_depth( [0... 255] )
通过控制能够被扩展的一系列函数调用(从0到255次)来控制嵌入函数扩展的发生次数,这个编译指示控制用inline,__inline标记的或在/Ob2选项下能自动嵌入的嵌入函数。
inline_depth编译指示控制能够被扩展的一系列函数调用。例如,如果嵌入深度是4,并且如果A调用B然后调用C,所有的3次调用都将做嵌入扩展。然而,如果设置的最近一次嵌入深度是2,则只有A和B被扩展,而C仍然作为函数调用。
为了使用这个编译指示,你必须设置编译程序选项/Ob为1或者2。用这个编译指示指定的深度设定在该指示后面的第一个函数开始生效。如果你在括号内不指定一个值,inline_depth设置嵌入深度到默认值8。
在扩展时,嵌入深度可以被减少而不能被增加。如果嵌入深度是6,同时在扩展过程中预处理程序遇到一个inline_depth编译指示设置为8,则深度保持为6。
嵌入深度0将拒绝嵌入扩展,深度255将设置在嵌入扩展时没有限制。如果用一个没有指定值的编译指示,则使用为默认值。
#pragma inline_recursion( [{on | off}] )
控制直接或者相互间的递归函数调用式的嵌入扩展。用这个编译指示控制用inline,__inline标记的或在/Ob2选项下能自动嵌入的嵌入函数。使用这个编译指示需要设置编译程序选项/Ob为1或者2。默认的inline_recursion状态是off。这个编译指示在出现该编译指示之后第一个函数调用起作用,并不影响函数的定义。
inline_recursion编译指示控制如何扩展递归函数。如果inline_recursion是off,并且如果一个嵌入函数调用了它自己(直接的或者间接的),函数将仅仅扩展一次。如果inline_recursion是on,函数将扩展多次直到达到inline_depth的值或者容量限制。
- inline_depth和inline_recursion编译指令
- linux 编译和指令
- JSP编译指令和JSP动作指令
- JSP编译指令和动作指令
- JSP编译指令和动作指令
- 三、JSP编译指令和动作指令
- C++编译预处理:宏定义指令、文件包含指令和条件编译指令
- C/C++编译预处理:宏定义指令、文件包含指令、条件编译指令和特殊符号处理
- C++编译预处理:宏定义指令、文件包含指令和条件编译指令
- C++编译预处理:宏定义指令、文件包含指令和条件编译指令
- JSP编译指令和动作指令基本知识点
- JSP include编译指令和include动作指令的区别
- JSP中的编译指令和动作指令的区别
- Jsp包含三个编译指令和七个动作指令。
- jsp三个编译指令和七个动作指令
- include编译指令和动作指令的区别
- 【jsp】 3个编译指令和7个动作指令
- JSP include编译指令和include动作指令区别
- n个骰子 点数和 概率计算
- VC debug不能设断点
- 替换空格
- 解决evince打开pdf文件遇到的错误及解决方法
- C++多维数组的声明和使用
- inline_depth和inline_recursion编译指令
- oracle数据库不小心删除了表 解决办法。
- C++ 与 C 的规范不同之处
- 使用morn ui 的loadAssets加载多个资源
- iOS 项目 ShareSDK 实现三方登陆 分享
- Gdb调试多进程程序
- source insight快捷键及使用技巧
- OS error EEXIST was thrown when db2start was issued in a single node environment.
- 多重继承和虚继承