搜索
bottom↓
回复: 16

if(AA>0)就是不好使.

[复制链接]

出0入0汤圆

发表于 2012-9-15 10:05:44 | 显示全部楼层 |阅读模式
本帖最后由 nydns 于 2012-9-15 14:05 编辑

unsigned char buf[99]={0};
unsigned char AA=0;

AA=buf[--j];
//SBUF=buf[j];结果正确
//SBUF中为16进制13;10进制19;

if(AA>0)
{}//这里不执行啊
else
{}//总是执行这里


谢谢大家问题解决了

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-9-15 10:33:04 | 显示全部楼层
buf[j] = 0
所以执行else这里的代码了。检查一下buf[j]为什么等于0就知道了

出0入0汤圆

发表于 2012-9-15 10:38:45 | 显示全部楼层
--j 与
j--

不同哦騒年!?

出0入0汤圆

 楼主| 发表于 2012-9-15 11:17:04 | 显示全部楼层
Tliang 发表于 2012-9-15 10:33
buf[j] = 0
所以执行else这里的代码了。检查一下buf[j]为什么等于0就知道了

SBUF=buf[j];结果正确
buf[j]不为0

出0入0汤圆

 楼主| 发表于 2012-9-15 11:18:15 | 显示全部楼层
babysnail 发表于 2012-9-15 10:38
--j 与
j--

先减 后减这我明白

出0入0汤圆

发表于 2012-9-15 11:18:39 | 显示全部楼层
buf[99]={0};这个不是限定了buf[]都是0,所以AA>0当然不成立了,你用了串口接收到了数据,所以就改变了,就正常了呗……

出0入0汤圆

发表于 2012-9-15 11:27:07 | 显示全部楼层
蛋疼,为什么要用【--j】,这样显得高手专业吗?
刚学谭浩强的c时候我时不时这样玩,后来就不了。宁可多些几行

出0入0汤圆

发表于 2012-9-15 13:51:44 | 显示全部楼层
nydns 发表于 2012-9-15 11:17
SBUF=buf[j];结果正确
buf[j]不为0

AA为无符号字符型是从0~255,if(AA > 0)除了为0这个条件不成立外还有其他条件不成立吗、、、?
还有你的程序第一行unsigned char buf[99] = {0}我不知道是将99个单元都写0还是将1个写0.如果是全写0.那么你的程序一进入这个子程序buf里面的数据全清0了。这时候你说buf[j]里面的数据不是0吗??除非你的j是一个超过下标值,那么就有可能不是0.

出0入0汤圆

发表于 2012-9-15 14:03:26 | 显示全部楼层
就算你的unsigned char buf[99] = {0}为全局变量。j = 100,那么你在前面99次都是在else这个里面。你有没有试过接到100个数据只后?一百个数据之后你又有没有重新设置j的值?你贴这么点程序出来谁看的出呢。。你贴的这个所有的代码是在一个函数里面?还是一部分在函数里面?一部分是全局?

出0入0汤圆

发表于 2012-9-15 17:00:53 | 显示全部楼层
LZ解决了的话,最好把自己解决的方法说一下,问题在哪里。方便大家也方便自己

出0入0汤圆

发表于 2012-9-15 17:36:08 | 显示全部楼层
LZ可以这样调试一下:
AA=1;
if(AA>0)
{}
else
{}
看看这个条件判断是如何执行的?

出0入0汤圆

 楼主| 发表于 2012-9-16 00:48:27 | 显示全部楼层
ywl0409 发表于 2012-9-15 17:36
LZ可以这样调试一下:
AA=1;
if(AA>0)

谢谢 代码很长我只帖了一部分.问题解决了.

出0入0汤圆

发表于 2012-9-16 05:40:17 | 显示全部楼层
问题解决了.


and you don't think you owe it to those who helped you to explain how you debugged it?

if so, assholes like you should be permanently banned from this forum.

出0入0汤圆

发表于 2012-9-16 05:55:47 来自手机 | 显示全部楼层
younge 发表于 2012-9-15 11:27
蛋疼,为什么要用【--j】,这样显得高手专业吗?
刚学谭浩强的c时候我时不时这样玩,后来就不了。宁可多些 ...

一行代码就干一个事情 所有的事情显示的干出来 亏好我们当年用的是老师自己写的讲义
后来看了 c专家编程 c与指针 都这样强调

出0入0汤圆

发表于 2012-9-26 10:52:33 | 显示全部楼层
同志buf数组太大了,总共128字节。去掉8字节的R0~R7。还有堆栈

出0入0汤圆

发表于 2012-9-26 10:54:40 | 显示全部楼层
用51声明数组一定要精打细算。不要像微机下编程,声明大点也无所谓。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 22:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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