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

inline内联函数

时间:2019-07-23 00:01:11      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:开头   col   code   最大化   功能   程序   截图   span   ima   

inline用于修饰函数。

ininle的作用是建议编译器简化函数调用开销,这也是inline的存在的意义

  语句被翻译成机器指令,CPU多执行一条机器指令,从执行数量的角度上来说,少肯定比多好。

int test(){

}
//这个函数什么功能都没,但是从编译的角度来看(这里有优化的情况...),这是会产生机器指令的。

 

 

 技术图片

 关于上段截图,选中蓝色部分,我利用VS2015做了测试,情况如下

 

技术图片

很明显都是采用了内联手段。

接着我又这样测试

  

int max(int a,int b){
  return a>b;      
}

结果还是同样的采用了内联手段。

回到文章开头,inline是对编译器建议,建议,建议。

甭管C语言实现规定了inline这样或那样,在VS中他就是这样。

试想你写自己编写一款编译器,从效率上来说,你难到不是想最大化优化程序的效率?

很明显VS2015就是这样干的,我不需要你们在代码中使用inline修饰函数,能用内联的全使用内联。所以你加不加关键字修饰真没什么意思。

 

总结:

  inline鸡助不需要花费时间去学习,原因是现在的编译器都已经智能的可以通过对函数的复杂度,判断使用或不使用内联。毕竟效率第一

  如果有朋友知道,现在编译器,不使用inline关键字就不优化的情况,请告诉我。

  过于复杂的代码是不能被内联的(递归)。

 

inline内联函数

标签:开头   col   code   最大化   功能   程序   截图   span   ima   

原文地址:https://www.cnblogs.com/binaryAnt/p/11229079.html

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