ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
打印

[STM32F1] 大神们问一个简单的小问题:uint8_t 参数要大于0吗

[复制链接]
383|6
跳转到指定楼层
楼主
代码如下
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
沙发
| 2019-11-2 11:31 | 只看该作者
Gu8Pro_cnt_read是啥类型的数据啊?tripnum是无符号类型数据,比较大小时最好用相同类型的数据。
板凳
 楼主 | 2019-11-2 16:39 | 只看该作者
Gu8Pro_cnt_read 也是uint8_t
地板
| 2019-11-3 08:07 | 只看该作者
else没有用呀
5
| 2019-11-3 11:20 | 只看该作者
这个if else语句不建议这么设计,也许你的逻辑是对的,但是别人看起来很累。
2个条件并非排斥的。
何不把逻辑搞得一清二楚呢?
if(a==0)
{
  aaa
}
else
{
  if(a<b) bbb
    else ccc
}
这样多好,逻辑绝对不会错,二选一的条件
6
| 2019-11-4 11:39 | 只看该作者
如果Gu8Pro_cnt_read >= 1,tripnum为零,肯定返回READ,
如果不是这个结果,就是你的前提条件不对,比如Gu8Pro_cnt_read并不是>= 1,被改变了
7
| 2019-11-4 17:29 | 只看该作者
不会出错. 你可以单步看汇编
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表
中兴彩票 868彩票 重庆彩票网 乐盈彩票APP 牛牛彩票 易发彩注册 美狮彩票 牛牛彩票 80彩票 新华彩票