电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
inline内联函数为什么不能有循环语句
已解决
73482
个问题
已帮助
5993
位优秀工程师
inline内联函数为什么不能有循环语句
drepa
2017-12-06
浏览量:3436
如题,在网上搜索关于内联函数的使用注意事项,上面提到了内联函数不能有循环节(while)和递归。递归不能出现在内联函数里很好理解,因为递归会占用大量堆栈使得内联函数出错,但是为什么循环不能出现在内联函数里呢?循环貌似不会占用大量堆栈吧?
显示全部
其他
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
xdsnet
内联函数在编译时其实是会展开到调用处的,用空间换时间的方式来提高效率,对于循环之类的处理,展开空间要求比较高,而且很可能有很大的空间浪费,所以编译器在处理时即使有内联关键字也作为普通内容进行处理了。
发布于
2017-12-06
举报
评论 2
1
0
drepa
回复了 xdsnet:说得在理
回复
电子老工程师
回复了 :电压不一样,反向电流不一样,工作电阻不一样,具体请看附件图片
回复
其他答案
数量:
5
Angel_YY
说起来是不允许,但是如果你这样使用的话,编译器绝对不会报错!他只是把这样的内联函数作为一般函数来处理!因而也就没有起到提高效率的作用!
如果你想用内联函数提高程序的效率,就不要这样做!
发布于
2017-12-06
举报
评论 2
1
0
drepa
回复了 Angel_YY :原来如此,谢啦
回复
电子老工程师
回复了 :包装区别,产品同一物料
回复
DengQilong
就像C的goto语句一样啊,不建议
发布于
2017-12-06
举报
评论 1
1
0
电子老工程师
回复了 :MC的是工业级,会有两种封装有插件有贴片, S开头的是汽车级,
回复
7943603
不使用递归,肯定没的说,循环应该是可以的。内联本身就是直接翻译成语句,使用内联就是为了加快程序执行。
发布于
2017-12-06
举报
评论 1
0
0
电子老工程师
回复了 :数据手册没有给出误差范围,无法确认
回复
Sourcelink
内敛函数占内存,你用循环就更占内存了,一下子展开了,要循环可以,但是循环深度不能太多
发布于
2017-12-06
举报
评论 1
0
0
电子老工程师
回复了 :丝印具体信息资料没有说明,建议咨询一下供应商
回复
donatello
允许肯定允许,编译器不会报任何错和警告,但是这样做的话这个inline函数就失去它的特点了。
发布于
2017-12-14
举报
评论 1
0
0
电子老工程师
回复了 :制造商 Rohm Semiconductor 制造商产品编号 MNR12ERAPJ222
回复
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
inline内联函数为什么不能有循环语句
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: