问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请教一下,MDK3.8编程出现的一个警告

发布网友 发布时间:2024-10-22 08:57

我来回答

1个回答

热心网友 时间:2024-11-07 06:26

最后一句判断 if (dis > 900) 不要写,直接 return 4 就行了。

因为执行到了这里时,dis 小于等于 900 的值,都已经在前面 return 了,这里必然大于 900,所以不用再写 if (dis > 900)。

 

编译器要测试所有返回的通路,如果哪个通路没有返回值,编译器就会警告,你这个例子里,if (dis > 900) 返回了 4,编译器从语法逻辑上推导,认为下面必须存在一个 else 的返回通路,逻辑才会完整,但编译器没有找到 else,所以警告了。你可能会说,else 的 dis 值,就是“小于等于” 900 啊,在前面都已经返回了,这里加 else 没有任何意义。是的,即使加了 else,程序也不可能运行到 else 处,但编译器只需要逻辑通路的完整,而“值”是不是处理过了,编译器不管,实际上也没法管,例如,我把其中一个 if (dis > 100 && dis <= 225) 的判断,改到一个函数里:

if (dis <= 25 && dis <= 100)
    return 9;
if (foo (dis))  // 这里修改一下
    return 8;
if (dis > 225 && dis <= 400)
    return 7;
... 
-----------------
int foo (int dis)
{
    return (dis > 100 && dis <= 225) ? 1 : 0;
}

从改后的 if 序列来看,编译器完全无法判断 foo 函数里干了什么,那么到了 if (dis > 900) 的判断时,100 到 225 的值怎么办?如果没有 else,编译返回什么呢?

所以,这些关于返回值通路的问题,编译器是不能帮你做任何事情的,只能你来做,而你是知道此处 dis 不可能小于等于 900,那么,你要做的事情,就是把 if (dis > 900) 删除。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么我的《英雄传说:空之轨迹SC》中“艾尔贝周游道的通缉魔兽”不见... 空之轨迹sc 托兰特平原的通缉魔兽二号 我是2兆的宽带 原先的下载速度达到260KB/S 重装下系统最高还不到70K... 为什么两兆的线下载速度只有80KB/S 我们家宽带是网通的办理了2兆的可是下载速度70~90KB 原因 一九八三年大年三十是什么星座 请教1984年2月1日出生而且阴历生日正好是大年三十,请问我岁是多大 万岱鸿腾国际商贸有限公司送表真的吗 云南岱鸿商贸有限公司怎么样? 重庆鸿岱科技有限公司怎么样? 冒昧的请教一下,U8的失落遗迹解析 请教一下大家,用友U8软件中,去年的某个月的结转成本的分录做错了,导致... 请教一下U8普及版的上机日志问题 尿检白细胞高要怎么办 白细胞高细菌属于性与细菌性感染吃什么药好 白血球高怎么治疗 我qq红包提现里面财付通密码改掉会不会银行卡密码也被改掉 1 0 我的qq发红包要支付宝密码,但是我忘记密码了,我用别人的银行卡的... 想知道非日语系的学生在学校里怎么学日语? 去读湖南司法警官职业学院的刑事执行专业和去铁道警察学院读书2013新 ... 兰坪白族普米族自治县矿产资源 湖南司法警官职业学院一下三个专业哪个好点 ...法学专业,我司法警官学校刑事执行专业的可以报吗 湖南司法警官学院刑事执行专业可以考公安么? 湖南司法警官职业学院刑事执行专业能够报考浙江哪些监狱单位或者能否报 ... 腰一椎体爆裂骨折有内顾定能抨上几级伤残 内顾觉今是的意思内顾觉今是的意思是什么 杨义之,而内顾增忧是什么意思 我是一个小学生女孩,最近听到我同学说要换换发型 可我就是不知道, 我... ...很严重,上车去修脚的地方他说好像是痛风,哪位医生帮我解释下,我才1... ...以及要多少钱 请教一下 我的是 酷比魔方U8用的 古人常说得得饶人处且饶人猜猜最早讲的是什么故事 推荐一部股民必看电视剧《股市人生》,附观后感! 哪款金属探测仪比较好用呢?求推荐? ...预约出租汽车运输证里要求安装gps定位系统和报警系统,去哪里... amd4800h相当于i几? 急转弯 王先生在打太极拳时金鸡独立,好久了都不累,为什么? ...不多只要一化妆,眼皮就肿~应该睫毛胶和双眼皮贴的原因,可是1年多了... 梦见温泉荷花红鱼苍天大树 十孔口琴低音6怎么吹 ...真的很想结婚了,但跟现在的男友性生活不和谐,也不怎么喜欢他,以后结 ... 蜱虫咬后怎么止痒消肿? 谷雨前后栽花种豆 谷雨前后种瓜种豆吗 vivo s9可以换wp8桌面主题? vivo S9这款手机用经典主题的时候能换手机背景图案吗? ...了一个等腰三角形的风筝,这个风等的一个腰长是28cm,那么它的底边长... 一个等腰三角形木框,周长是86厘米,腰长是28厘米.这个木框的底边长是多 ... ...三角形风筝,他的一条腰长是5dm,它的底边长可能是多少分米?你的依据... ...形状的风筝,两条边长分别是54㎝和27㎝,这个风筝的周长是多少㎝?_百 ...