找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

学习单片机C语言循环语句的问题

查看数: 2604 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-11-8 14:56

正文摘要:

左移、右移各循环8次,这样写对吗?有没有其它写法?

回复

ID:891876 发表于 2022-11-9 10:34
chenshandeng 发表于 2022-11-8 18:50
这样写是对的,也可以用while循环

怎样写可以提示一下吗
ID:891876 发表于 2022-11-9 10:34
hgig 发表于 2022-11-9 08:35
这个写法是对的,也可以考虑在左移右移函数加一个传参,参数为移动的位数,可以让主函数变得简洁一些

怎样写?可以提示一下吗?
ID:1050867 发表于 2022-11-9 08:35
这个写法是对的,也可以考虑在左移右移函数加一个传参,参数为移动的位数,可以让主函数变得简洁一些
ID:883242 发表于 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属于实际执行语句,楼主的写法显然是错误的。
ID:624769 发表于 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,可自行摸索。
ID:1051062 发表于 2022-11-8 18:50
这样写是对的,也可以用while循环
ID:883242 发表于 2022-11-8 17:24
8次是对的。至于左移右移没有代码无法判断。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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