51单片机里面的for循环出现问题,提前跳出for循环

2020-02-05 09:13发布

我写了一个单片机程序,其中for循环如下
for(i=0;i<32766;i++)
      if(DATA==0)   break;
但是i变量还没有到32766就跳出循环了,此时DATA还是1的,根本没有满足条件,而且跳出for循环之后后面的语句都不执行了,直接跳出此for循环所在的子函数,回到主函数,很懵啊,没明白怎么回事
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
ali1019
1楼-- · 2020-02-06 05:56
 精彩回答 2  元偷偷看……
xuanke
2楼-- · 2020-02-06 06:44
数据类型定义的问题,应该是溢出了
shaloumisha
3楼-- · 2020-02-06 12:28
dzymushi 发表于 2012-5-30 22:50
你i定义的是8位的还是16位的还是32的啊、

定义的INT类型
shaloumisha
4楼-- · 2020-02-06 16:59
ali1019 发表于 2012-5-31 10:17
Data=0 , 跳出后 Data又被改成 1

DATA从来都没有等于0过 我观察到的哈
shaloumisha
5楼-- · 2020-02-06 21:30
jswd0810 发表于 2012-5-31 10:14
建议你看看编译出来的汇编程序,可能是被keil优化掉了,我遇见过好几次

开始我也怀疑是这个问题 我把优化级别设置成很低了 还是有问题  
shaloumisha
6楼-- · 2020-02-07 00:54
 精彩回答 2  元偷偷看……

一周热门 更多>