找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2092|回复: 11
打印 上一主题 下一主题
收起左侧

单片机新手对C语言编程的程序不太清楚,求赐教!

[复制链接]
跳转到指定楼层
楼主
ID:973855 发表于 2022-2-22 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void write_string(uchar hang,uchar add,uchar *p)
{
        if(hang==1)   
                write_com(0x80+add);
        else
                write_com(0x80+0x40+add);
                while(1)                                                                                                                 
                {
                        if(*p == '\0')  break;
                        write_data(*p);
                        p++;
                        delay_uint(50);
                }        
}
这是51电子密码锁让lcd1602显示字符函数的代码,其中的while(1)括号后面这些是什么意思,加上了有什么作用吗?求大神赐教!!!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:979299 发表于 2022-2-22 14:24 | 只看该作者
循环语句,表示循环运行括号内的程序
回复

使用道具 举报

板凳
ID:203661 发表于 2022-2-22 14:31 | 只看该作者
while(1){}  表示一直循环执行{}里面的语句,碰到字符串结束符后,自动终止循环。
回复

使用道具 举报

地板
ID:908826 发表于 2022-2-22 14:33 | 只看该作者
这是输入字符串,字符串是以结束符'\0'作为结尾,你看你字符指针p加一,就是字符串当前字符往后移一个,当你碰到结束符的时候,这个字符串就是结束了,所以会执行if下面的第一个分号前的语句,也就是break,(这里建议你按照编程规范,不管if(条件表达式)。。。。这个if要执行几句,就算是一句,也最好加上花括号)
回复

使用道具 举报

5#
ID:893997 发表于 2022-2-22 15:34 | 只看该作者
一直执行,成立就退出
回复

使用道具 举报

6#
ID:624769 发表于 2022-2-22 19:53 | 只看该作者
死读书的写法:
               while(1)                                                                                                                 
                {
                        if(*p == '\0')  break;
                        write_data(*p);
                        p++;
                        delay_uint(50);
                }        
通过理解后用自己的思想写的话:
               while(*p != '\0')                                                                                                                 
                {
                        write_data(*p);
                        p++;
                        delay_uint(50);
                }        
回复

使用道具 举报

7#
ID:712493 发表于 2022-2-22 20:54 | 只看该作者
188610329 发表于 2022-2-22 19:53
死读书的写法:
               while(1)                                                              ...

这个有区别?
回复

使用道具 举报

8#
ID:624769 发表于 2022-2-22 22:45 来自手机 | 只看该作者
fj51hei 发表于 2022-2-22 20:54
这个有区别?

一个是绝对循环+条件跳出
一个是只有条件循环

你说有没有区别?
回复

使用道具 举报

9#
ID:1003226 发表于 2022-2-23 10:20 | 只看该作者
while(1);停止
回复

使用道具 举报

10#
ID:1006960 发表于 2022-2-26 16:32 | 只看该作者
'\0'是字符串结尾,循环输出,一直到字符串结尾结束循环
回复

使用道具 举报

11#
ID:488268 发表于 2022-2-28 08:36 | 只看该作者
188610329 发表于 2022-2-22 19:53
死读书的写法:
               while(1)                                                              ...

只执行一次就退出了?
回复

使用道具 举报

12#
ID:551638 发表于 2022-3-1 10:40 | 只看该作者
就是如果读取到回车就会退出
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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