while(1)和while(0)
while語句的原型是while(表達(dá)式)語句,當(dāng)表達(dá)式為非0值時(shí),執(zhí)行while語句中的嵌套語句。
1.while(1)其中1代表一個(gè)常量表達(dá)式,它永遠(yuǎn)不會(huì)等于0。循環(huán)會(huì)一直執(zhí)行下去。除非你設(shè)置break等類似的跳出循環(huán)語句循環(huán)才會(huì)中止。
2.while(i–)其中i是一個(gè)變量,因此表達(dá)式i–有不同的值,依次遞減,i–是先取值后減,–i先加后取值,所以i–的值同未執(zhí)行該自減運(yùn)算時(shí)的i相等。因此當(dāng)i為0時(shí),循環(huán)會(huì)跳出。
很容易混淆的是把i–的值誤認(rèn)為i執(zhí)行自減后的值。
擴(kuò)展資料:
單片機(jī)中while(1)有兩種用途:
while(1); 意義:這是一個(gè)死循環(huán),代碼不再向下執(zhí)行。
用途:
while( 1 ) { 代碼 }; 意義:這里將會(huì)重復(fù)執(zhí)行{}中的代碼
用途:
1.單片機(jī)在不使用操作系統(tǒng)時(shí),主程序一般都使用這種架構(gòu)
2.操作系統(tǒng)中的進(jìn)程,執(zhí)行任務(wù)時(shí),有些也會(huì)使用這種架構(gòu)
3.{}中的代碼不停地檢測某個(gè)條件,當(dāng)條件符合時(shí),跳出該循環(huán),繼續(xù)向下執(zhí)行
4.停留在此,等待中斷。
在單片機(jī)中使用while(1),大部分還是為了防止程序跑飛,因?yàn)楹芏鄷r(shí)候執(zhí)行完某段程序后單片機(jī)的程序指針PC并不會(huì)停止,仍然會(huì)繼續(xù)從ROM中讀取指令并執(zhí)行,進(jìn)而出現(xiàn)不確定的結(jié)果,加個(gè)while(1)就能讓程序在執(zhí)行完后在原地循環(huán),相當(dāng)于停在原地,防止跑飛。
while(0)就是一次都不執(zhí)行循環(huán),等同于while(0!=0)
總結(jié)
以上是生活随笔為你收集整理的while(1)和while(0)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【读书笔记】IOS帝国-Apple Ⅱ/
- 下一篇: 计算机开放电子书 2016 归档