<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > PIC單片機C語(yǔ)言程序設計(2)

PIC單片機C語(yǔ)言程序設計(2)

作者: 時(shí)間:2012-07-10 來(lái)源:網(wǎng)絡(luò ) 收藏

 五、C的標識符和關(guān)鍵字

本文引用地址:http://dyxdggzs.com/article/171168.htm

  一個(gè)完整的C程序,通常由包含文件(即頭文件1,變量定義、變量說(shuō)明、函數定義、函數體和注釋等六部分等組成。

  1.C的標識符

  所謂標識符,實(shí)際上是一些由程序編寫(xiě)者自定義的名稱(chēng),類(lèi)似于匯編語(yǔ)言中給寄存器(RAM)的命名。C語(yǔ)言中所用到的變量名、函數名、數組名、文件名等都是由標識符組成的。

  標識符是由一串字母(常指英語(yǔ)字母)、數字和下線(xiàn)符(或稱(chēng)下劃線(xiàn))組成的字符串。標識符的第一個(gè)字符必須是字母或下線(xiàn)符。按照慣例,以下線(xiàn)符開(kāi)頭的標識符是系統程序專(zhuān)用的,程序員最好不用。程序員可將下線(xiàn)符作為分段符使用,如SUM_1。

  同一字母的大小寫(xiě)被視為不同的標識符。即同一字母的大小寫(xiě)是不同的標識符。

  不同的C編譯器對標識符的長(cháng)度有不同的限制。為了避免所編寫(xiě)的源文件能被所有C編譯器認可,可將標識符的長(cháng)度限定在8個(gè)字符以?xún)龋?個(gè)字節)。

  標識符的命名(即自定義),最好簡(jiǎn)捷、含意清晰、便于閱讀,如用deIay表示延時(shí);用sum表示求和;用loop表示循環(huán)等。

  2.C語(yǔ)言的關(guān)鍵字

  關(guān)鍵字,又稱(chēng)保留字,是指那些已由系統作了特殊定義、具有特定含義的標識符。,程序員編寫(xiě)C程序時(shí),可用關(guān)鍵字來(lái)對所用函數參數進(jìn)行說(shuō)明、定義一些物理量,它們是C語(yǔ)言語(yǔ)句的重要組成部分,有的還直接組成簡(jiǎn)單語(yǔ)句。因此,用戶(hù)是不能將此類(lèi)標識符(關(guān)鍵字)作為自定義標識符使用的。

  C語(yǔ)言的關(guān)鍵字分為三類(lèi),即數據類(lèi)、程序控制類(lèi)和預處理類(lèi),如表1所示。

表1

  表1中所列關(guān)鍵字,讀者在編寫(xiě)C程序時(shí),將逐步學(xué)會(huì )其使用。

  六、C語(yǔ)言的數據類(lèi)型

  在編寫(xiě)C語(yǔ)言程序時(shí),首先要涉及的是數據描述和功能描述。數據是實(shí)現功能的過(guò)程,功能是數據運算(或處理)的結果,沒(méi)有數據,C程序就無(wú)法實(shí)現規定的功能,可見(jiàn)數據在C語(yǔ)言程序中的重要性。

  C語(yǔ)言的數據類(lèi)型,有基本型、構造型、指針型三類(lèi)。對此,筆者將在使用時(shí)逐一介紹。

  1.標準型

  標準型數據屬于基本型數據,是由C語(yǔ)言本身提供的基本數據類(lèi)型,結構簡(jiǎn)單、使用頻率高。下面以實(shí)例對C語(yǔ)言程序中的標準型數據予以說(shuō)明。

  標準型數據又分為整型數據、實(shí)型數據和字符型數據三種,每種數據又有常量和變量之分。筆者將其分類(lèi)以表格形式列出,既可供初學(xué)者編寫(xiě)C語(yǔ)言程序時(shí)查找,亦可與本文中實(shí)例程序的注釋進(jìn)行對比學(xué)習,以加深對標準型數據的理解。

(1)整型常量。

1.while語(yǔ)句

 ?。?)格式:while(條件表達式)

 ?。?)功能:程序運行時(shí),先判斷條件表達式,當條件表達式的值為非零(即為“真”)時(shí),執行while語(yǔ)句中的內嵌語(yǔ)句,即先判斷條件表達式,再執行語(yǔ)句。當條件表達式為零時(shí),退出循環(huán);若表達式一開(kāi)始就為0,其while語(yǔ)句一次也不執行;若條件表達式恒為1,則程序在while體內一直循環(huán)。

 ?。?)程序實(shí)例2

  1)硬件電路和功能硬件電路同《單片機C語(yǔ)言(1)》一文的圖1(見(jiàn)《電子制作》2009年第10期)。圖中的RA0口外接的微動(dòng)開(kāi)關(guān)KO,作為程序的起動(dòng)開(kāi)關(guān)。KO未按下時(shí)。單片機系統處于等待狀態(tài),按一次KO,系統依次進(jìn)行以下工作:RBO口外接的LEDO點(diǎn)亮→延時(shí)→LEDO熄滅→RB2外接的LED2點(diǎn)亮→延時(shí)→LED2滅→RB4外接LED4點(diǎn)亮→延時(shí)→LED4滅→執行間斷語(yǔ)句break終止循環(huán)→點(diǎn)亮RB6外接的LED6→回到等待狀態(tài),直到RA0外接的微動(dòng)開(kāi)關(guān)KO再次按下,再重復上述過(guò)程。

  2)源文件清單。

  本實(shí)例2的程序清單如下(源文件名PIC02.C):

  說(shuō)明:

 ?、?上述程序中,關(guān)鍵字break、continue和return等組成的簡(jiǎn)單語(yǔ)句的使用是略有區別的。具體區別如下:

  間斷語(yǔ)句break:程序運行到此就終止循環(huán),跳出while(1)的循環(huán)體,執行該循環(huán)體緊接在后面的語(yǔ)句:

  · 繼續語(yǔ)句continue:如果把該程序中的break語(yǔ)句換成繼續語(yǔ)句continue。程序運行到此便立即執行由while(1)開(kāi)始功能的程序,即程序在該循環(huán)體內不斷地運行,等效于不用continue;語(yǔ)句;·return語(yǔ)句:當把該程序中的break換成return語(yǔ)句時(shí),程序運行到此就會(huì )立即返回主程序運行。

  讀者學(xué)習C語(yǔ)言時(shí),一定要將實(shí)例2源程序中的關(guān)鍵字“break”分別用“coutinue”和“return”代換并運行程序,同時(shí)觀(guān)察使用三種不同的關(guān)鍵字時(shí)LED指示燈的不同狀態(tài),方能體會(huì )出三者的差異。

 ?、?關(guān)于帶形式參數(簡(jiǎn)稱(chēng)形參)的延時(shí)函數。

  實(shí)例2所用的延時(shí)函數與實(shí)例1不同。實(shí)例1(見(jiàn)《電子制作》2009年第10期)用的是無(wú)參數函數,功能簡(jiǎn)單,一個(gè)函數完成一定的延時(shí)。實(shí)例2用的是有參數延時(shí)函數,一個(gè)函數可完成不同的延時(shí)(如上述實(shí)例2 中的延時(shí)1、延時(shí)2、延時(shí)3、延時(shí)4)。這是因為,帶形參函數(如實(shí)例2中的延時(shí)函數v0id delay(K))可以借助參數的傳遞功能來(lái)完成不同時(shí)間的設置,這是匯編語(yǔ)言所無(wú)法做到的。由此可見(jiàn),采用C語(yǔ)言可大大簡(jiǎn)化程序的編寫(xiě)工作。

  鑒于形參對熟悉匯編語(yǔ)言的設計人員來(lái)說(shuō)是一個(gè)全新的概念,有關(guān)C語(yǔ)言的函數參數傳遞功能,我們在后續的文章中還將進(jìn)一步介紹,以加深大家對其的理解。

  整型常量,是指在程序運行過(guò)程中數值保持不變的量,在編寫(xiě)C程序時(shí),整型常量用關(guān)鍵字cONST進(jìn)行定義。表2給出了各種常量的類(lèi)型、表示方法及示例說(shuō)明。

表2

 ?。?)整型變量。

  整型變量。是指在程序運行過(guò)程中數值會(huì )改變的量。整型(即整數類(lèi)型)變量的基本型是lnt。

  Int可以保存一個(gè)整數,并允許在_nl前加上基本型、短整型、長(cháng)整型,以及無(wú)符號型等四種整型類(lèi)型。下面分別加以說(shuō)明1)基本型:標志是int。

  2)短整型:標志是short int。

  3)長(cháng)整型:標志是long int。

  4)無(wú)符號型:存儲單元中,全部二進(jìn)制位均用來(lái)存放整數自身。而不包括符號位。無(wú)符號型又分為無(wú)符號整型、無(wú)符號短整型、無(wú)符號長(cháng)整型三種。

 ?、贌o(wú)符號整型:標志是unsigned int:

 ?、跓o(wú)符號短整型:標志是unsigned short int;

  ③無(wú)符號長(cháng)整型:標志是unsigned Iong int。

  以上C語(yǔ)言變量的要點(diǎn),是相關(guān)的關(guān)鍵字,以及每個(gè)整型變量的取值范圍,即長(cháng)度(二進(jìn)制位個(gè)數)。

  PlC單片機C語(yǔ)言的整型變量、數據名稱(chēng)、取值范圍如表3所示。表中的內容,在編寫(xiě)C程序時(shí)經(jīng)常使用,初學(xué)者應熟練掌握。

表3

  說(shuō)明:1.表3列出了整型變量的取值范圍。例如,從表3中可以看出,無(wú)符號長(cháng)整型變量unsigned long int的最大取值可達10位數,將其用于延時(shí)函數,僅用一條循環(huán)語(yǔ)句,延時(shí)便可達20小時(shí)以上(參看下文中的實(shí)例2)。2.對于表3中的字符型(char)、浮點(diǎn)型(float)和雙精度型doable等整型變量,將在本連載后續文章的程序使用到時(shí)進(jìn)行說(shuō)明。

  七、C語(yǔ)言的控制循環(huán)語(yǔ)句

  在C語(yǔ)言程序中,會(huì )用到多種功能語(yǔ)句??刂蒲h(huán)語(yǔ)句(下稱(chēng)循環(huán)語(yǔ)句)便是其中之一。

  C語(yǔ)言的循環(huán)語(yǔ)句有三種,即while語(yǔ)句、do while語(yǔ)句和for語(yǔ)句。循環(huán)語(yǔ)句一般由循環(huán)控制條件來(lái)控制循環(huán)的重復次數。如果控制條件沒(méi)有完成,要想終止循環(huán),可在循環(huán)體中用間斷語(yǔ)句break、返回語(yǔ)句retum,或者用繼續語(yǔ)句continue來(lái)終止當前循環(huán)周期中的操作,使控制進(jìn)入其他程序段。下面逐一進(jìn)行介紹,并通過(guò)程序實(shí)例來(lái)說(shuō)明其應用,以利大家加深理解。

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程




關(guān)鍵詞: 程序設計 語(yǔ)言 單片機 PIC

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>