找回密码
 立即注册
楼主: QQ624353765

这是C51语言的BUG吗

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-04-30 10:59:33

25

主题

1154

回帖

2391

积分

超级版主

积分
2391
发表于 2023-2-7 13:58:20 | 显示全部楼层
  使用楼主的方法实测证明C51编译器判断逻辑并没有问题,或许有其他隐藏问题没有找出,请楼主也发个简单的能触发判断错误的例程包出来,大家好一起分析。

IO口测试-C.zip

5.76 KB, 下载次数: 56

点评

STC客服都这么厉害了,能给参考程序了 ?  详情 回复 发表于 2023-2-7 17:20
STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2023-2-7 15:11:32 | 显示全部楼层
本帖最后由 梁工 于 2023-2-7 20:54 编辑
QQ6243*** 发表于 2023-2-7 13:19
就是任何值为真,除了31和47

那就是“沙发”一楼的回复,两个判断都可以。
  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-02 09:52:56
已绑定手机

229

主题

328

回帖

1475

积分

金牌会员

积分
1475
发表于 2023-2-7 15:29:05 | 显示全部楼层
zh*** 发表于 2023-2-7 13:23
对于你的代码,值为31和47时也为真(其实是所有的值都为真)
所以你不觉得是你的逻辑判断有问题吗? ...

我明白了
if ((P->CD_GunDong != 31) || (P->CD_GunDong != 47))
CD_GunDong =31时
判断CD_GunDong !=31假
在判断CD_GunDong !=47真
所有这个if判断是真
CD_GunDong =47时
判断CD_GunDong !=31真
所有if也是有效的

if ((P->CD_GunDong != 31) && (P->CD_GunDong != 47))
CD_GunDong =31时
if(假&&真)==假
CD_GunDong =47时
if(真&&假)==假

你要这样解释就容易明白了
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2023-2-7 17:20:48 | 显示全部楼层
STCAI-32*** 发表于 2023-2-7 13:58
使用楼主的方法实测证明C51编译器判断逻辑并没有问题,或许有其他隐藏问题没有找出,请楼主也发个简单的 ...

STC客服都这么厉害了,能给参考程序了 ?
  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-02 09:52:56
已绑定手机

229

主题

328

回帖

1475

积分

金牌会员

积分
1475
发表于 2023-2-7 19:43:12 | 显示全部楼层
STCAI-32*** 发表于 2023-2-7 13:58
使用楼主的方法实测证明C51编译器判断逻辑并没有问题,或许有其他隐藏问题没有找出,请楼主也发个简单的 ...

解决了
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-05-10 16:29:53

12

主题

66

回帖

285

积分

中级会员

积分
285
发表于 2023-2-7 20:50:44 来自手机 | 显示全部楼层
只要满足一个就执行?你的程序意思是不等于31或不等于47其他条件都执行
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:44 , Processed in 0.139704 second(s), 87 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表