inline函数不能在for循环中使用的原因
2017-11-25 19:10
519 查看
inline函数的作用继承了宏定义的优点,没有了参数压栈,代码生成等一部分操作,并且摒弃了没有检查编译规则的缺点;
另外要注意,内联函数一般只会用在函数内容非常简单的时候,这是因为,内联函数的代码会在任何调用它的地方展开,如果函数太复杂,代码膨胀带来的恶果很可能会大于效率的提高带来的益处。内联函数最重要的使用地方是用于类的存取函数。 原因1: inline实际上“相当于”宏替换,就是把函数的二进制代码直接复制到调用的地方,因而inline代码不应该有跳转。而循环结构无法避免条件跳转,所以有循环的代码无法inline; 原因2: inline是将代码copy到指定的位置,放在循环当中就会大量的复制代码; 这可以默认认为inline函数不能在for循环。 http://bbs.csdn.net/topics/340149836
相关文章推荐
- C++中虚函数不能是inline函数的原因
- 存储过程: 函数 不能在SQL中使用
- validator不能正常使用的原因
- C++里的静态成员函数(不能用const的原因+static在c++中的第五种含义)
- 学点 C 语言(39): 函数 - 使用函数的代价与内联函数(inline)
- VAssistX不能使用的原因
- IE中子栏目使用float属性后背景不能正常显示原因及解决
- C++里的静态成员函数(不能用const的原因+static在c++中的第五种含义)(转)
- 对inline函数使用单独的定义文件
- 给元素注册事件时,事件函数中不能使用全局变量
- 使用hibernate与mysql时数据不能插入的原因及解决办法
- inline 函数的使用以及注意事项
- 使用PeekMessage后,调用postquitmessage(0)不能退出消息循环的原因
- 在界面线程不能使用Sleep和WaitForSingleObject之类的函数
- 不能使用 mb_strlen 函数的问题
- 使用.NET Compact Framework开发Windows Mobile程序,不能触发OnKeyPress/OnKeyDown的原因及解决办法
- each函数不能使用break和continue关键字,替代方法
- 使用IE不能访问ftp的原因
- 给元素注册事件时,事件函数中不能使用全局变量
- CRichEditControl 不能正常使用的原因