标题: 学习单片机C语言循环语句的问题 [打印本页]

作者: 芙蓉焊料    时间: 2022-11-8 14:56
标题: 学习单片机C语言循环语句的问题
左移、右移各循环8次,这样写对吗?有没有其它写法?





作者: Hephaestus    时间: 2022-11-8 17:24
8次是对的。至于左移右移没有代码无法判断。
作者: chenshandeng    时间: 2022-11-8 18:50
这样写是对的,也可以用while循环
作者: 188610329    时间: 2022-11-8 20:25
从写法对错来讲, unsigned char 的声明,不能放在 while(1) 里面,而应该在 void main的开始处。

从循环的其他写法来讲。
void main()
{
         char i;
         i=0;
         while(1)
         {
                for(;i<8;i++)
                {
                        L_led();
                }
                for(;i>0;i--)
                {
                        R_led();
                }
          }
}
是一种取巧写法、同样,也可以 用while,可自行摸索。
作者: Hephaestus    时间: 2022-11-8 20:58
188610329 发表于 2022-11-8 20:25
从写法对错来讲, unsigned char 的声明,不能放在 while(1) 里面,而应该在 void main的开始处。

从循 ...

显然你不懂C99标准,C语言都是跟谁学的?

同样是Keil界面,C51是不支持C99标准的,而RealView MDK是支持C99的。

在支持C99的编译器上,变量可以随用随定义,楼主的写法是正确的。而C51这样不支持C99的编译器变量定义必须在所有实际执行语句之前,而while属于实际执行语句,楼主的写法显然是错误的。
作者: hgig    时间: 2022-11-9 08:35
这个写法是对的,也可以考虑在左移右移函数加一个传参,参数为移动的位数,可以让主函数变得简洁一些
作者: 芙蓉焊料    时间: 2022-11-9 10:34
hgig 发表于 2022-11-9 08:35
这个写法是对的,也可以考虑在左移右移函数加一个传参,参数为移动的位数,可以让主函数变得简洁一些

怎样写?可以提示一下吗?
作者: 芙蓉焊料    时间: 2022-11-9 10:34
chenshandeng 发表于 2022-11-8 18:50
这样写是对的,也可以用while循环

怎样写可以提示一下吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1