免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2418 | 回复: 3
打印 上一主题 下一主题

[函数] 关于内联函数-gcc下的 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-16 10:40 |只看该作者 |倒序浏览
总是对内联函数不太明白
就知道语句简单 而且调用次数多的话加上inline
谁能给说说内联函数的详细介绍
给个网址或者解说一下 不胜感激
还有内联函数的详细用法 各位大虾也给说说

论坛徽章:
0
2 [报告]
发表于 2003-04-16 12:30 |只看该作者

关于内联函数-gcc下的

没人回 斑竹 给说说好吗?

论坛徽章:
0
3 [报告]
发表于 2003-04-16 22:05 |只看该作者

关于内联函数-gcc下的

普通函数调用是跳转到函数入口地址
然后执行
然后返回调用点

因为函数间跳转要一定的开销
所以性能比较低
特别是对于一些小函数
花在跳转上的时间比函数实际使用时间还要长或是差不多
这严重影响了程序的性能

因此在后来引入inline概念
有inline声明的函数直接把代码写在调用点,与调用者代码合在一起
,调用inline不再需要跳转,提高了程序的性能

由于使用inline时要把函数代码写到调用处
所以与普通函数调用相比程序会比较大

声明一个函数为inline的方法是在函数定义前写上inline

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

函数定义对要调用者必须可见
因此如果一个inline函数需要在多个文件中使用的话
那么可以把它的定义写在头文件中
而不应该在头文件中写函数声明,这样编译器会报错的

inline出现是为了提高函数性能,只对简单函数有意义
对于复杂的函数声明为inline没有任何意义
编译器对大函数也不会执行inline操作

论坛徽章:
0
4 [报告]
发表于 2003-04-17 10:31 |只看该作者

关于内联函数-gcc下的

写得非常清楚,非常感谢!:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP