请教一个问题:为什么内联函数不能 有循环语句和switch语句呢,谢谢,详细点

 我来答
百度网友b1f2f1e
2008-11-20 · TA获得超过275个赞
知道小有建树答主
回答量:141
采纳率:50%
帮助的人:85.6万
展开全部
不是内联函数中不能有循环语句,而是当内联函数中出现了复杂的逻辑控制语句后,编译器会不再认为它是一个内联函数。

也就是说,当内联函数中实现过于复杂时,编译器会将它作为一个普通函数处理。

这是由内联函数的特殊性所决定的,由于内联是调用处展开的方式,所以编译器认为只有足够简单的函数才可以具有该特性,复杂函数编译器会放弃内联特性。
百度网友6205bc1
推荐于2018-04-11 · TA获得超过6004个赞
知道大有可为答主
回答量:5933
采纳率:20%
帮助的人:2737万
展开全部
如有函数需要频繁使用,则所用时间会很长.(因为执行到调用函数处,流程转移到函数入口处,同时进行参数传递,这时要记下调用函数前的地址,执行完后,流程回到之前记下的地址处,调用函数的下一条指令.这都要花费一定时间)C++提供一种提高效率的方法,即在编译时将所调用函数的代码直接嵌入到主调函数中,就是所谓的内联函数.

但内联函数一般只对5个语句以下而频繁使用的函数声明为内联函数,有循环语句和switch语句,递归是机制决定不会被置换的.又像有1000行的函数,编译系统也会忽略你的inline声明,将其按普通函数处理.

不知这样解释能否令你满意.
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
他是错过的
2008-11-20
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
这是规定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式