游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3863|回复: 11

问一个inline的问题

[复制链接]

29

主题

405

帖子

405

积分

中级会员

Rank: 3Rank: 3

积分
405
发表于 2006-12-31 16:37:00 | 显示全部楼层 |阅读模式
我对inline的理解是,如果是inline函数,那么在编译的时候自动展开.
那么如果我把类导到dll中,类的inline函数不就没inline的效果了么?

9

主题

688

帖子

688

积分

高级会员

Rank: 4

积分
688
发表于 2006-12-31 21:50:00 | 显示全部楼层

Re:问一个inline的问题

所以inline的会写在.h文件中,这是我的理解。

29

主题

405

帖子

405

积分

中级会员

Rank: 3Rank: 3

积分
405
 楼主| 发表于 2007-1-1 00:44:00 | 显示全部楼层

Re:问一个inline的问题

在类的定义中写上函数的实现,等于写上inline,没有区别的.除非是单个的函数.

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2007-1-1 20:00:00 | 显示全部楼层

Re:问一个inline的问题

inline 只是一个对内联的建议 dll无法已经无法内联了 自然就退化成普通函数
并且 好像还有递归函数 也无法内联 也被退化掉

另外 至于在定义中的函数是否内联,是根据编译器的优化设置。

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2007-1-4 13:38:00 | 显示全部楼层

Re:问一个inline的问题

关键字inline只是一个hint
相当于你在向compiler说: "人家想要麻"
而vc所特有的__forceinline则相当于: "我偏要麻"

0

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2007-1-4 16:50:00 | 显示全部楼层

Re:问一个inline的问题

不好意思,水一下,顶下5楼的兄弟.....原来是个性情中人阿!!

MSDN曰:以下两种情况下,编译器是另外创建一个函数(inline指定的那个,既5楼说的 “偏要的那个”),并且按标准调用方式链接,而不是用插入inline代码。要知道inline是插入代码的,不存在函数调用问题。

1、递归函数
2、通过指针调用,处于另外一个转换单元的函数

所以,楼顶说的问题,可以解释为: DLL中的函数是属于第二种例外情况!

说的不好,请多包涵!

最后再次问5楼的好!
“晚上睡觉别盖太厚的被子,别穿过紧内裤,早睡早起,多想想共产主义事业。” 与君共勉!

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2007-1-4 17:42:00 | 显示全部楼层

Re:问一个inline的问题

共勉~

29

主题

405

帖子

405

积分

中级会员

Rank: 3Rank: 3

积分
405
 楼主| 发表于 2007-1-4 23:18:00 | 显示全部楼层

Re:问一个inline的问题

thx!

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2007-1-5 20:59:00 | 显示全部楼层

Re:问一个inline的问题

...6楼的话我貌似在哪里见过。。。

15

主题

368

帖子

406

积分

中级会员

Rank: 3Rank: 3

积分
406
发表于 2007-1-7 23:34:00 | 显示全部楼层

Re:问一个inline的问题

我天天都想共产主义事业!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 06:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表