目前位置: VCer资源中心 >>> VCer文章 >>> C++/MFC基础

[本帖已阅读1371次 分值80 回复0次] 张贴资源 发回信箱 控制面板

inline函数的小结

提供者:oases2008 张贴时间:2005-01-01 00:00:00.0 出处:http://www.jblook.cn 作者:不祥

inline函数的小结(2005-01-01 00:00:00.0)


oases2008


 
级别: VCer小兵
头衔: VCer会员

经验: 258
作品: 3
分会: 华北分会
注册: 2007-01-25 12:00:19.0
登录: 2007-10-30 16:38:36.0
C89不支持内联函数,C99才支持。 

   

由于inline函数具有内部链接,因此数个文件定义相同名字的内联函数不会发生冲突,而类函数宏就不行,会产生重复定义。 

   

inline函数是真正的函数,可以由语句组成;但函数宏所做的只是替换,不是真正的函数,当然也不能有语句。

函数中的语句大于8句以上的话,一般编译器就自动将你的inline函数转化为uninline函数。

宏是把那个代码在当前位置展开,根本不用测试,肯定是最快的。

   

内联函数编译之后应该是把代码直接插到调用位置(应该是指编译器不优化情况下)所以执行的时候不会去压栈,调用函数代码,退栈,所以如果执行的次数多,就会比较快。

   

执行到非内联函数时,函数不在当前位置,是个指针,然后经历压栈,调用函数代码,退栈三个过程。会比较慢。

inline的引入大部分是为了参数类型安全检查和防止边界效应。如果是函数宏,可能有边界效应。

本文转载自IT网it求职笔试真题库网

注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/1000000000355.html

  如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:) vcer.net捐赠

[回复该贴] [加入个人书签]
[投票结果]

A: 评分 10 0% (0 票)
B: 评分 5 0% (0 票)
C: 评分 0 0% (0 票)
D: 评分 -5 0% (0 票)
E: 评分 -10 0% (0 票)