智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2273|回复: 5
打印 上一主题 下一主题

记录一个比较怪的BUG

[复制链接]

45

主题

761

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5023
威望
2903
贡献
558
兑换币
1271
注册时间
2012-10-16
在线时间
781 小时
跳转到指定楼层
1#
发表于 2014-5-31 15:07:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序这么写的:
//=================================//
int  a = 0;//全局变量
int  b = 0; //全局变量

void 函数(void)
{
    b = 0;//清零
    a = 。。。。。。。。;
    b=。。。。。调用了a;
}


void mian()
{
     函数();
     LCD();//显示a,b的值
}
//=================================//


现象:
单步调试时,a,b的值正确,显示也正确。
把车放赛道,看LCD显示a,b,的值,刚开始都正确,只要我手在摄像头前划过后,b的值就不再正确,a的值正确。

解决方法:
鼓捣两个小时后,在函数();里面对a进行清零后,bug就这样解决了。

求大神指导



回复

使用道具 举报

25

主题

808

帖子

0

精华

常驻嘉宾

该设备未检测到相应驱动!

Rank: 8Rank: 8

积分
3355

优秀会员奖章活跃会员奖章

威望
2154
贡献
901
兑换币
428
注册时间
2014-2-20
在线时间
150 小时
2#
发表于 2014-5-31 21:06:21 | 只看该作者
完全没懂。
回复 支持 反对

使用道具 举报

0

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
威望
104
贡献
58
兑换币
64
注册时间
2014-2-19
在线时间
19 小时
3#
发表于 2014-5-31 21:23:20 | 只看该作者
是不是因为你用的是全局变量,上一次的a值影响到下一次的a值了,全局变量记得是整个程序中都可以被改变......
回复 支持 反对

使用道具 举报

45

主题

761

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5023
威望
2903
贡献
558
兑换币
1271
注册时间
2012-10-16
在线时间
781 小时
4#
 楼主| 发表于 2014-5-31 22:02:32 | 只看该作者
nch1766 发表于 2014-5-31 21:23
是不是因为你用的是全局变量,上一次的a值影响到下一次的a值了,全局变量记得是整个程序中都可以被改变.... ...

我的理解和你一样,但是程序不按我们理解那样运行,现在很多全局变量在函数调用前我都清零的,怕出问题。
回复 支持 反对

使用道具 举报

0

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
威望
104
贡献
58
兑换币
64
注册时间
2014-2-19
在线时间
19 小时
5#
发表于 2014-5-31 22:17:21 | 只看该作者
I'M_Not_The 发表于 2014-5-31 22:02
我的理解和你一样,但是程序不按我们理解那样运行,现在很多全局变量在函数调用前我都清零的,怕出问题。 ...

感觉全局变量使用还是有风险的,不必要的的情况下还是少用为妙,函数之间用形参也不是不可以。
回复 支持 反对

使用道具 举报

24

主题

260

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2497

活跃会员奖章优秀会员奖章

威望
1181
贡献
786
兑换币
758
注册时间
2014-4-24
在线时间
265 小时
6#
发表于 2014-6-1 17:09:09 | 只看该作者
这些都是神马玩意
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-25 14:41 , Processed in 0.170257 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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