什么叫内联成员函数,代码膨胀,刚学c++看什么书好~我有一点c语言基础

什么叫内联函数~~书上的定义我看过~可是还是有些云里雾里的感觉~可不可以给具体代码给我看一下~~简单一点的~好么~~代码膨胀是什么~能不能简单说一下给我听~c++新手~自... 什么叫内联函数~~书上的定义我看过~可是还是有些云里雾里的感觉~可不可以给具体代码给我看一下~~简单一点的~好么~~
代码膨胀是什么~能不能简单说一下给我听~
c++新手~自学中~问的问题可能比较白痴~大虾们见笑咯
展开
 我来答
百度网友dccd79ab8
2013-01-22 · TA获得超过739个赞
知道小有建树答主
回答量:292
采纳率:100%
帮助的人:184万
展开全部
内联函数如果要精确定义可以到MSDN上查询

我只是大略跟你说明一下

你首先应该了解代码复用性
由于我们在实现某个程序,而某个程序中存在某个功能会频繁调用
我们就会把这个功能抽象成一个函数

每次调用普通函数,其实函数调用是一种软中断,每次调用的时候会进行现场保护
就是会保存如PSW的值 寄存器值
而函数返回之后就会恢复现场
这一些都需要CPU资源开销

而内联函数是一种与编译器的约定,本来编译器会根据你定义的函数
将每次调用该函数时都进行标记或是给一个地址值(实际上这个值是错误的,因为编译器无法知道其运行时的地址,链接器做的工作)
而如果函数标记了内联的话(inline),则编译器会先进行性能判断,如果OK则会将函数调用处的call指令到ret全部替换成你函数体的指令
也就是说 没有调用该函数,而是直接执行函数体内部的代码

而代码膨胀一说,因为本来函数调用就是为了代码复用
而你却直接把函数的本体全部添加到调用处了 就好比你没有写这个函数 而是重复函数内部的执行代码
如果你调用了100000次这样的内联函数
如果你每个函数内部都有10行的话
那么你可以想象编译器帮你复制粘贴了多少的代码。。

自己的理解,不懂HI我
kof2001kop
2013-01-22 · TA获得超过126个赞
知道答主
回答量:152
采纳率:0%
帮助的人:143万
展开全部
摘自《effective C++》条款30:
inline:对此函数的每一个调用,都以函数本体替换之。
代码膨胀:使用inline可能会增加目标码的大小,过度热衷inlining会造成程序体积太大,即代码膨胀。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-01-22
展开全部
先说内联函数。简单地说,就是经常使用且代码比较少的函数可以定义为内联函数,比如时间由格式time_t转为字符串表示的函数。在类体内实现的函数编译器默认为内联函数。
代码膨胀,个人理解就是代码不精简,有些臃肿,至于什么原因引起的要具体分析。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Didar905
2013-01-22 · TA获得超过177个赞
知道答主
回答量:39
采纳率:0%
帮助的人:17.6万
展开全部
自己敲代码好累的说
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式