请教一个函数问题

2019-08-06 21:27发布

void WRITE_TWOline(uchar X,uchar Y,uchar count)
{
uchar i;
uchar DDATA;
switch(Y)
       {
     case 1:{
             X=X|0x80;
       WRITE_CMD(X);
                for(i=0;i=<count;i++)
                {
                 uchar Num=0;
                 DDATA=str0[Num];
                    WRITE_DATA(DDATA);
                 Num++;
                 }
      }break;
        case 2:{
                X=X+0x40;
             X=X|0x80;
       WRITE_CMD(X);
                for(i=0;i=<count;i++)
                {
                 uchar Num=0;
                 DDATA=str1[Num];
                    WRITE_DATA(DDATA);
                 Num++;
                 }
               }break;
     default:break;
      }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
jlyuan
1楼-- · 2019-08-07 15:17
第一个错误,属于语法错误,是我打代码打的太快的结果,不可原谅的是我居然没有查出来。可见我对C的语法还是很生疏的。

第二个我觉得是逻辑上的错误,这种错误编译器一般不会报错,需要程序员自己的小心处理。
wuhany
2楼-- · 2019-08-07 19:48
case 1:{
             ……
      }break;
这种风格头一次见,呵呵
lizye
3楼-- · 2019-08-08 00:45
那么多指令,调用函数,不用{}都可以实现,反正CASE指令没有遇到BREAK都一直往下执行,途径不重要,只要好懂,能用好用都行,不知道其他人怎么看
dengdc
4楼-- · 2019-08-08 03:13
应该是
for(i=0;i<=count;i++)
这个<=符号是很容易出错的,因为不太符合我们平时的写法
zhanghqi
5楼-- · 2019-08-08 03:22
 精彩回答 2  元偷偷看……
jiaxw
6楼-- · 2019-08-08 05:29
谢谢众位兄弟们,我把它重新改了一下。

void WRITE_TWOline(uchar X,uchar Y,uchar count)
{
uchar i;
switch(Y)
    {
     case 1:X|=0x80;
               WRITE_CMD(X);//调用写指令确定DDRAM地址
               for(i=0;i<=count;i++)
                {
                  WRITE_DATA(str0);
                 }
               break;
     case 2:X=(X+0x40)|0x80;
               WRITE_CMD(X);//调用写指令确定DDRAM地址
               for(i=0;i<=count;i++)
                {
                  WRITE_DATA(str1);
                }
               break;
    default:break;
   }
}

去掉了Num和DDATA两个变量,这里不需要那两个变量的辅助也同样可以实验函数功能。

一周热门 更多>