找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2101|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)新手對(duì)C語(yǔ)言編程的程序不太清楚,求賜教!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:973855 發(fā)表于 2022-2-22 11:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
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顯示字符函數(shù)的代碼,其中的while(1)括號(hào)后面這些是什么意思,加上了有什么作用嗎?求大神賜教!。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:979299 發(fā)表于 2022-2-22 14:24 | 只看該作者
循環(huán)語(yǔ)句,表示循環(huán)運(yùn)行括號(hào)內(nèi)的程序
回復(fù)

使用道具 舉報(bào)

板凳
ID:203661 發(fā)表于 2022-2-22 14:31 | 只看該作者
while(1){}  表示一直循環(huán)執(zhí)行{}里面的語(yǔ)句,碰到字符串結(jié)束符后,自動(dòng)終止循環(huán)。
回復(fù)

使用道具 舉報(bào)

地板
ID:908826 發(fā)表于 2022-2-22 14:33 | 只看該作者
這是輸入字符串,字符串是以結(jié)束符'\0'作為結(jié)尾,你看你字符指針p加一,就是字符串當(dāng)前字符往后移一個(gè),當(dāng)你碰到結(jié)束符的時(shí)候,這個(gè)字符串就是結(jié)束了,所以會(huì)執(zhí)行if下面的第一個(gè)分號(hào)前的語(yǔ)句,也就是break,(這里建議你按照編程規(guī)范,不管if(條件表達(dá)式)。。。。這個(gè)if要執(zhí)行幾句,就算是一句,也最好加上花括號(hào))
回復(fù)

使用道具 舉報(bào)

5#
ID:893997 發(fā)表于 2022-2-22 15:34 | 只看該作者
一直執(zhí)行,成立就退出
回復(fù)

使用道具 舉報(bào)

6#
ID:624769 發(fā)表于 2022-2-22 19:53 | 只看該作者
死讀書的寫法:
               while(1)                                                                                                                 
                {
                        if(*p == '\0')  break;
                        write_data(*p);
                        p++;
                        delay_uint(50);
                }        
通過(guò)理解后用自己的思想寫的話:
               while(*p != '\0')                                                                                                                 
                {
                        write_data(*p);
                        p++;
                        delay_uint(50);
                }        
回復(fù)

使用道具 舉報(bào)

7#
ID:712493 發(fā)表于 2022-2-22 20:54 | 只看該作者
188610329 發(fā)表于 2022-2-22 19:53
死讀書的寫法:
               while(1)                                                              ...

這個(gè)有區(qū)別?
回復(fù)

使用道具 舉報(bào)

8#
ID:624769 發(fā)表于 2022-2-22 22:45 來(lái)自手機(jī) | 只看該作者
fj51hei 發(fā)表于 2022-2-22 20:54
這個(gè)有區(qū)別?

一個(gè)是絕對(duì)循環(huán)+條件跳出
一個(gè)是只有條件循環(huán)

你說(shuō)有沒(méi)有區(qū)別?
回復(fù)

使用道具 舉報(bào)

9#
ID:1003226 發(fā)表于 2022-2-23 10:20 | 只看該作者
while(1);停止
回復(fù)

使用道具 舉報(bào)

10#
ID:1006960 發(fā)表于 2022-2-26 16:32 | 只看該作者
'\0'是字符串結(jié)尾,循環(huán)輸出,一直到字符串結(jié)尾結(jié)束循環(huán)
回復(fù)

使用道具 舉報(bào)

11#
ID:488268 發(fā)表于 2022-2-28 08:36 | 只看該作者
188610329 發(fā)表于 2022-2-22 19:53
死讀書的寫法:
               while(1)                                                              ...

只執(zhí)行一次就退出了?
回復(fù)

使用道具 舉報(bào)

12#
ID:551638 發(fā)表于 2022-3-1 10:40 | 只看該作者
就是如果讀取到回車就會(huì)退出
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表