根據(jù)C語(yǔ)言程序的凡人執(zhí)行順序,分成三個(gè)區(qū)域:進(jìn)入主程序前的區(qū)域曙寡,主程序的初始化區(qū)域,主程序的循環(huán)區(qū)域寇荧。
主程序前的區(qū)域举庶。上電后在單片機(jī)執(zhí)行主程序代碼之前就已經(jīng)完成了的工作。包括頭文件的包含揩抡,宏定義户侥,內(nèi)存分配這些工作。
主程序的初始化區(qū)域峦嗤。上電后單片機(jī)進(jìn)入主程序后馬上就要執(zhí)行的程序代碼蕊唐,單片機(jī)只執(zhí)行一次。只要單片機(jī)不重啟烁设,不復(fù)位替梨,那么上電后這部分的代碼只被執(zhí)行一次。
主程序的循環(huán)區(qū)域。單片機(jī)在主程序中執(zhí)行完了初始化區(qū)域的代碼副瀑,緊接著就進(jìn)入這片循環(huán)區(qū)域的代碼弓熏。單片機(jī)一直在逐行循環(huán)執(zhí)行這些代碼,執(zhí)行到末尾時(shí)又返回到循環(huán)區(qū)域的開始處繼續(xù)開始新一輪的執(zhí)行俗扇,周而復(fù)始硝烂,往復(fù)循環(huán),這就是上電后單片機(jī)的最終歸宿铜幽,一直處在循環(huán)的狀態(tài)滞谢。
分析一個(gè)程序源代碼的三個(gè)區(qū)域和執(zhí)行順序,此源代碼實(shí)現(xiàn)的功能是:上電后除抛,蜂鳴器鳴叫一聲就停止(初始化區(qū)域)狮杨,然后看到一個(gè)LED燈一直在不停的閃爍(循環(huán)區(qū)域)。
這里首先要理解C語(yǔ)言中<>和“”的區(qū)別如下:
1到忽、<>先去系統(tǒng)目錄中找頭文件橄教,如果沒(méi)有在到當(dāng)前目錄下找。所以像標(biāo)準(zhǔn)的頭文件 stdio.h和 stdlib.h等用這個(gè)方法喘漏。
2护蝶、""首先在當(dāng)前目錄下尋找,如果找不到翩迈,再到系統(tǒng)目錄中尋找持灰。 這個(gè)用于include自定義的頭文件,讓系統(tǒng)優(yōu)先使用當(dāng)前目錄中定義的负饲。
//...進(jìn)入主程序前的區(qū)域
void main()
{
//...初始化區(qū)域
while(1)
{
//...循環(huán)區(qū)域
}
}