真不懂C51,for循环都不会写了。

2020-02-05 09:07发布

这两种写法有什么区别:
1、for(j=WinY1;j>=WinY2;j--)Point(i,j,1);
2、for(j=WinY2;j<=WinY1;j++)Point(i,j,0);
一种是从大到小,一种是从小到大,问题是有一种运行后死机了。所有变量均是unsigned char,当WinY2=0时死机。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
xinxin3219
1楼-- · 2020-02-06 06:51
不同的编译器对关键字范围的定义有少许差别,就像ICCAVR中的char ,还是等价于 unsigned char,而不是C中的char
lugang_2920213
2楼-- · 2020-02-06 07:55
eduhf_123 发表于 2012-6-8 22:47
这个与C51无关,C语言功底不够、基础就不扎实。

严重同意
xiaobendan001
3楼-- · 2020-02-06 11:13
 精彩回答 2  元偷偷看……
86hupeng
4楼-- · 2020-02-06 13:49
重新改改吧,
jssd
5楼-- · 2020-02-06 14:01
unsigned char 型的变量,0之后就变为255.for(j=WinY1;j>=WinY2;j--)Point(i,j,1);当WinY2=0时,j>=WinY2永远成立,就死循环了.
davidd
6楼-- · 2020-02-06 19:00
for(j=WinY1;j>=WinY2;j--)Point(i,j,1);
j要用char型,因为j要变负的

一周热门 更多>