打印
[STM32F1]

uint8_t 参数要大于0吗

[复制链接]
1714|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

使用特权

评论回复
5
juventus9554| | 2021-10-19 23:48 | 只看该作者
else没有用呀

使用特权

评论回复
6
dingy| | 2021-10-19 23:49 | 只看该作者
这个if else语句不建议这么设计,也许你的逻辑是对的,但是别人看起来很累。
2个条件并非排斥的。
何不把逻辑搞得一清二楚呢?
if(a==0)
{
  aaa
}
else
{
  if(a<b) bbb
    else ccc
}
这样多好,逻辑绝对不会错,二选一的条件

使用特权

评论回复
评分
参与人数 1威望 +10 收起 理由
MianQi + 10 赞一个!
7
xxrs| | 2021-10-19 23:50 | 只看该作者
如果Gu8Pro_cnt_read >= 1,tripnum为零,肯定返回READ,

使用特权

评论回复
8
jiajs| | 2021-10-19 23:51 | 只看该作者
如果不是这个结果,就是你的前提条件不对

使用特权

评论回复
9
jiaxw| | 2021-10-19 23:52 | 只看该作者
比如Gu8Pro_cnt_read并不是>= 1,被改变了

使用特权

评论回复
10
zhaoxqi| | 2021-10-19 23:53 | 只看该作者
不会出错. 你可以单步看汇编

使用特权

评论回复
11
jlyuan|  楼主 | 2021-10-19 23:54 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
12
kxsi| | 2021-11-7 16:36 | 只看该作者
好像这个是无符号的数吧

使用特权

评论回复
13
gwsan| | 2021-11-7 16:41 | 只看该作者
应该是不会出错的

使用特权

评论回复
14
drer| | 2021-11-7 16:52 | 只看该作者
为什么要看汇编呢

使用特权

评论回复
15
aoyi| | 2021-11-7 16:57 | 只看该作者
不需要大于0的

使用特权

评论回复
16
coshi| | 2021-11-7 17:00 | 只看该作者
这个无所谓的

使用特权

评论回复
17
zljiu| | 2021-11-7 17:06 | 只看该作者
无符号数不分正负的

使用特权

评论回复
18
SantaBunny| | 2023-3-5 16:46 | 只看该作者
大于或等于0,但是这里应该是个数,什么样的逻辑要看整体设计,这就不是语法上的问题了

使用特权

评论回复
19
Stahan| | 2023-3-5 19:31 | 只看该作者
是不是你前提条件的问题啊?

使用特权

评论回复
20
Wordsworth| | 2024-5-1 07:21 | 只看该作者

逐渐变细的孔(也称为邮票孔)变得越来越普遍

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

880

主题

12030

帖子

4

粉丝