码迷,mamicode.com
首页 > 其他好文 > 详细

inline函数不能在for循环中使用的原因

时间:2017-11-25 20:06:27      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:作用   复制   lin   代码生成   代码   跳转   原因   二进制   内联函数   

inline函数的作用继承了宏定义的优点,没有了参数压栈,代码生成等一部分操作,并且摒弃了没有检查编译规则的缺点;

 

另外要注意,内联函数一般只会用在函数内容非常简单的时候,这是因为,内联函数的代码会在任何调用它的地方展开,如果函数太复杂,代码膨胀带来的恶果很可能会大于效率的提高带来的益处。内联函数最重要的使用地方是用于类的存取函数。
 
 
 
原因1:
inline实际上“相当于”宏替换,就是把函数的二进制代码直接复制到调用的地方,因而inline代码不应该有跳转。而循环结构无法避免条件跳转,所以有循环的代码无法inline;
 
原因2:
inline是将代码copy到指定的位置,放在循环当中就会大量的复制代码;
 
 
这可以默认认为inline函数不能在for循环。
 

inline函数不能在for循环中使用的原因

标签:作用   复制   lin   代码生成   代码   跳转   原因   二进制   内联函数   

原文地址:http://www.cnblogs.com/linhaostudy/p/7896104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!