[STM32F1] uint8_t 参数要大于0吗

[复制链接]
2265|18
 楼主| jlyuan 发表于 2021-10-19 23:40 | 显示全部楼层 |阅读模式
代码如下
uint8_t Read_record(uint8_t tripnum)
{        

if(Gu8Pro_cnt_read==0){
return FAIL;
}
else if(Gu8Pro_cnt_read<tripnum){
return FAIL;
}
else{
return READ;
}
}

调用该函数,参数tripnum为0时会出错,uint8_t 取值不是包括0吗?
Gu8Pro_cnt_read是一个全局变量,值>=1
dengdc 发表于 2021-10-19 23:43 | 显示全部楼层
Gu8Pro_cnt_read是啥类型的数据啊?
huangchui 发表于 2021-10-19 23:44 | 显示全部楼层
tripnum是无符号类型数据,比较大小时最好用相同类型的数据。
 楼主| jlyuan 发表于 2021-10-19 23:47 | 显示全部楼层
Gu8Pro_cnt_read 也是uint8_t
juventus9554 发表于 2021-10-19 23:48 | 显示全部楼层
else没有用呀
dingy 发表于 2021-10-19 23:49 | 显示全部楼层
这个if else语句不建议这么设计,也许你的逻辑是对的,但是别人看起来很累。
2个条件并非排斥的。
何不把逻辑搞得一清二楚呢?
if(a==0)
{
  aaa
}
else
{
  if(a<b) bbb
    else ccc
}
这样多好,逻辑绝对不会错,二选一的条件

评分

参与人数 1威望 +10 收起 理由
MianQi + 10 赞一个!

查看全部评分

xxrs 发表于 2021-10-19 23:50 | 显示全部楼层
如果Gu8Pro_cnt_read >= 1,tripnum为零,肯定返回READ,
jiajs 发表于 2021-10-19 23:51 | 显示全部楼层
如果不是这个结果,就是你的前提条件不对
jiaxw 发表于 2021-10-19 23:52 | 显示全部楼层
比如Gu8Pro_cnt_read并不是>= 1,被改变了
zhaoxqi 发表于 2021-10-19 23:53 | 显示全部楼层
不会出错. 你可以单步看汇编
 楼主| jlyuan 发表于 2021-10-19 23:54 | 显示全部楼层

唉,还是没有什么结果,算了,多谢大家啦
kxsi 发表于 2021-11-7 16:36 | 显示全部楼层
好像这个是无符号的数吧
gwsan 发表于 2021-11-7 16:41 | 显示全部楼层
应该是不会出错的
drer 发表于 2021-11-7 16:52 | 显示全部楼层
为什么要看汇编呢
aoyi 发表于 2021-11-7 16:57 | 显示全部楼层
不需要大于0的
coshi 发表于 2021-11-7 17:00 | 显示全部楼层
这个无所谓的
zljiu 发表于 2021-11-7 17:06 | 显示全部楼层
无符号数不分正负的
SantaBunny 发表于 2023-3-5 16:46 | 显示全部楼层
大于或等于0,但是这里应该是个数,什么样的逻辑要看整体设计,这就不是语法上的问题了
Stahan 发表于 2023-3-5 19:31 | 显示全部楼层
是不是你前提条件的问题啊?
Wordsworth 发表于 2024-5-1 07:21 | 显示全部楼层

逐渐变细的孔(也称为邮票孔)变得越来越普遍
您需要登录后才可以回帖 登录 | 注册

本版积分规则

880

主题

12030

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部