![51單片機(jī)C語(yǔ)言編程規(guī)范_第1頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/20/8b22ff21-b07d-4bd6-9bba-f04a770c4713/8b22ff21-b07d-4bd6-9bba-f04a770c47131.gif)
![51單片機(jī)C語(yǔ)言編程規(guī)范_第2頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/20/8b22ff21-b07d-4bd6-9bba-f04a770c4713/8b22ff21-b07d-4bd6-9bba-f04a770c47132.gif)
![51單片機(jī)C語(yǔ)言編程規(guī)范_第3頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/20/8b22ff21-b07d-4bd6-9bba-f04a770c4713/8b22ff21-b07d-4bd6-9bba-f04a770c47133.gif)
![51單片機(jī)C語(yǔ)言編程規(guī)范_第4頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/20/8b22ff21-b07d-4bd6-9bba-f04a770c4713/8b22ff21-b07d-4bd6-9bba-f04a770c47134.gif)
![51單片機(jī)C語(yǔ)言編程規(guī)范_第5頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/20/8b22ff21-b07d-4bd6-9bba-f04a770c4713/8b22ff21-b07d-4bd6-9bba-f04a770c47135.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、51單片機(jī)C語(yǔ)言編程規(guī)范,源碼工作室,學(xué)習(xí)單片機(jī)C語(yǔ)言的必要性,隨著單片機(jī)性能的不斷提高,C語(yǔ)言編譯調(diào)試工具的不斷完善,以及現(xiàn)在對(duì)單片機(jī)產(chǎn)品輔助功能的要求、對(duì)開(kāi)發(fā)周期不斷縮短的要求,使得越來(lái)越多的單片機(jī)編程人員轉(zhuǎn)向使用C語(yǔ)言,因此有必要在單片機(jī)課程中講授“單片機(jī)C語(yǔ)言”。,C語(yǔ)言編程的優(yōu)勢(shì),1語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。 2運(yùn)算符豐富。 3數(shù)據(jù)結(jié)構(gòu)豐富。具有現(xiàn)代化語(yǔ)言的各種數(shù)據(jù)結(jié)構(gòu)。 4可進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì)。 5可以直接對(duì)計(jì)算機(jī)硬件進(jìn)行操作。 6生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。 7可移植性好。 8. 容易實(shí)現(xiàn)模塊化開(kāi)發(fā) 9. 方便調(diào)試與維護(hù)程序,C語(yǔ)言與匯編的區(qū)別,用匯編語(yǔ)言編寫(xiě)單片
2、機(jī)程序時(shí),必須要考慮其存儲(chǔ)器的結(jié)構(gòu),尤其要考慮其片內(nèi)數(shù)據(jù)存儲(chǔ)器、特殊功能寄存器是否正確合理的使用,以及按照實(shí)際地址端口數(shù)據(jù)的處理。 用C51編寫(xiě)程序,不像匯編語(yǔ)言那樣需要具體地組織、分配存儲(chǔ)器資源,只是C51對(duì)數(shù)據(jù)類(lèi)型和變量的定義,必須要與單片機(jī)的存儲(chǔ)結(jié)構(gòu)相關(guān)聯(lián),否則編譯器不能正確地映射定位。,單片機(jī)C語(yǔ)言與ANSI 的區(qū)別,用C51編寫(xiě)單片機(jī)程序,與用ANSI C編寫(xiě)程序的不同之處是,需要根據(jù)單片機(jī)存儲(chǔ)器結(jié)構(gòu)及內(nèi)部資源,定義相應(yīng)的數(shù)據(jù)類(lèi)型和變量。 其它的語(yǔ)法規(guī)定、程序結(jié)構(gòu)及程序設(shè)計(jì)方法,都與ANSI C相同。,C語(yǔ)言的程序結(jié)構(gòu),C語(yǔ)言程序采用函數(shù)結(jié)構(gòu),每個(gè)C語(yǔ)言程序由一個(gè)或多個(gè)函數(shù)組成,在這
3、些函數(shù)中至少應(yīng)包含一個(gè)主函數(shù)main(),也可以包含一個(gè)main()函數(shù)和若干個(gè)其它的功能函數(shù)。不管main()函數(shù)放于何處,程序總是從main()函數(shù)開(kāi)始執(zhí)行,執(zhí)行到main()函數(shù)結(jié)束則結(jié)束。可以在main()函數(shù)中調(diào)用其它函數(shù),其它函數(shù)也可以相互調(diào)用,但main()函數(shù)只能調(diào)用其它的功能函數(shù),而不能被其它的函數(shù)所調(diào)用。 功能函數(shù)可以是C語(yǔ)言編譯器提供的庫(kù)函數(shù),也可以是由用戶(hù)定義的自定義函數(shù)。在編制C程序時(shí),程序的開(kāi)始部分一般是預(yù)處理命令、函數(shù)說(shuō)明和變量定義等。,C語(yǔ)言與89C51單片機(jī),用C語(yǔ)言編寫(xiě)的89C51單片機(jī)應(yīng)用程序,不用像匯編語(yǔ)言那樣須具體組織、分配存儲(chǔ)器資源和處理端口數(shù)據(jù),但
4、在C語(yǔ)言編程中,對(duì)數(shù)據(jù)類(lèi)型與變量的定義,必須要與單片機(jī)的存儲(chǔ)結(jié)構(gòu)相關(guān)聯(lián),否則編譯器不能正確地映射定位。,C語(yǔ)言編寫(xiě)單片機(jī)應(yīng)用程序時(shí),需根據(jù)單片機(jī) 存儲(chǔ)結(jié)構(gòu)及內(nèi)部資源定義相應(yīng)的數(shù)據(jù)類(lèi)型和變量,而標(biāo)準(zhǔn)的C語(yǔ)言程序不需要考慮這些問(wèn)題;,C語(yǔ)言與89C51單片機(jī),C51包含的數(shù)據(jù)類(lèi)型、變量存儲(chǔ)模式、輸入輸出處理、函數(shù)等方面與標(biāo)準(zhǔn)的C語(yǔ)言有一定的區(qū)別。其它的語(yǔ)法規(guī)則、程序結(jié)構(gòu)及程序設(shè)計(jì)方法等與標(biāo)準(zhǔn)的C語(yǔ)言程序設(shè)計(jì)相同。 現(xiàn)在支持89C51系列單片機(jī)的C語(yǔ)言編譯器有很多種,如American Automation、Avocet、BSO/TASKING、DUNFIELD SHAREWARE、KEIL/Fra
5、nklin等。各種編譯器的基本情況相同,但具體處理時(shí)有一定的區(qū)別,其中KEIL/Franklin以它的代碼緊湊和使用方便等特點(diǎn)優(yōu)于其它編譯器,現(xiàn)在使用特別廣泛。 本章主要以KEIL編譯器介紹89C51單片機(jī)C語(yǔ)言程序設(shè)計(jì)。,C51程序結(jié)構(gòu),C51的語(yǔ)法規(guī)定、程序結(jié)構(gòu)及程序設(shè)計(jì)方法都與標(biāo)準(zhǔn)的C語(yǔ)言程序設(shè)計(jì)相同,但C51程序與標(biāo)準(zhǔn)的C程序在以下幾個(gè)方面不一樣: (1)C51中定義的庫(kù)函數(shù)和標(biāo)準(zhǔn)C語(yǔ)言定義的庫(kù)函數(shù)不同。標(biāo)準(zhǔn)的C語(yǔ)言定義的庫(kù)函數(shù)是按通用微型計(jì)算機(jī)來(lái)定義的,而C51中的庫(kù)函數(shù)是按89C51單片機(jī)相應(yīng)情況來(lái)定義的; (2)C51中的數(shù)據(jù)類(lèi)型與標(biāo)準(zhǔn)C的數(shù)據(jù)類(lèi)型也有一定的區(qū)別,在C51中還增加
6、了幾種針對(duì)89C51單片機(jī)特有的數(shù)據(jù)類(lèi)型;,C51程序結(jié)構(gòu),(3)C51變量的存儲(chǔ)模式與標(biāo)準(zhǔn)C中變量的存儲(chǔ)模式不一樣,C51中變量的存儲(chǔ)模式是與89C51單片機(jī)的存儲(chǔ)器緊密相關(guān); (4)C51與標(biāo)準(zhǔn)C的輸入輸出處理不一樣,C51中的輸入輸出是通過(guò)89C51串行口來(lái)完成的,輸入輸出指令執(zhí)行前必須要對(duì)串行口進(jìn)行初始化; (5)C51與標(biāo)準(zhǔn)C在函數(shù)使用方面也有一定的區(qū)別,C51中有專(zhuān)門(mén)的中斷函數(shù)。,C51數(shù)據(jù)類(lèi)型,C51的數(shù)據(jù)類(lèi)型分為基本數(shù)據(jù)類(lèi)型和組合數(shù)據(jù)類(lèi)型,情況與標(biāo)準(zhǔn)C中的數(shù)據(jù)類(lèi)型基本相同,但其中char型與short型相同,float型與double型相同,另外,C51中還有專(zhuān)門(mén)針對(duì)于89C5
7、1單片機(jī)的特殊功能寄存器型和位類(lèi)型。,C51數(shù)據(jù)類(lèi)型,特殊功能寄存器型,這是C51擴(kuò)充的數(shù)據(jù)類(lèi)型,用于訪(fǎng)問(wèn)89C51單片機(jī)中的特殊功能寄存器數(shù)據(jù),它分sfr和sfr16兩種類(lèi)型。其中: sfr為字節(jié)型特殊功能寄存器類(lèi)型,占一個(gè)內(nèi)存單元,利用它可以訪(fǎng)問(wèn)89C51內(nèi)部的所有特殊功能寄存器; sfr16為雙字節(jié)型特殊功能寄存器類(lèi)型,占用兩個(gè)字節(jié)單元,利用它可以訪(fǎng)問(wèn)89C51內(nèi)部的所有兩個(gè)字節(jié)的特殊功能寄存器。 在C51中對(duì)特殊功能寄存器的訪(fǎng)問(wèn)必須先用sfr或sfr16進(jìn)行聲明。,位類(lèi)型,這也是C51中擴(kuò)充的數(shù)據(jù)類(lèi)型,用于訪(fǎng)問(wèn)MCS-51單片機(jī)中的可尋址的位單元。在C51中,支持兩種位類(lèi)型:bit型和
8、sbit型。它們?cè)趦?nèi)存中都只占一個(gè)二進(jìn)制位,其值可以是“1”或“0”。 其中:用bit定義的位變量在C51編譯器編譯時(shí),在不同的時(shí)候位地址是可以變化的,而用sbit定義的位變量必須與89C51單片機(jī)的一個(gè)可以尋址位單元或可位尋址的字節(jié)單元中的某一位聯(lián)系在一起,在C51編譯器編譯時(shí),其對(duì)應(yīng)的位地址是不可變化的。,位類(lèi)型,格式如下: sbit 位變量名=位地址; 如位地址為位直接地址,其取值范圍為0 x000 xff;如位地址是可位尋址變量帶位號(hào)或特殊功能寄存器名帶位號(hào),則在它前面須對(duì)可位尋址變量或特殊功能寄存器進(jìn)行定義。字節(jié)地址與位號(hào)之間、特殊功能寄存器與位號(hào)之間一般用“”作間隔。,位類(lèi)型,在C
9、51中,為了用戶(hù)處理方便,C51編譯器把89C51單片機(jī)的常用的特殊功能寄存器和特殊位進(jìn)行了定義,放在一個(gè)“reg51.h”或“reg52.h”的頭文件中,當(dāng)用戶(hù)要使用時(shí),只須要在使用之前用一條預(yù)處理命令#include 把這個(gè)頭文件包含到程序中,然后就可使用殊功能寄存器名和特殊位名稱(chēng)。,數(shù)據(jù)轉(zhuǎn)換,在C51語(yǔ)言程序中,有可能會(huì)出現(xiàn)在運(yùn)算中數(shù)據(jù)類(lèi)型不一致的情況。C51允許任何標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型的隱式轉(zhuǎn)換。 1)自動(dòng)轉(zhuǎn)換 轉(zhuǎn)換規(guī)則是向高精度數(shù)據(jù)類(lèi)型轉(zhuǎn)換、向有符號(hào)數(shù)據(jù)類(lèi)型轉(zhuǎn)換。如字符型變量與整型變量相加時(shí),則位變量先轉(zhuǎn)換字符型或整型數(shù)據(jù),然后相加。 2)強(qiáng)制轉(zhuǎn)換 像ANSI C一樣,通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換的方式
10、進(jìn)行轉(zhuǎn)換。如: unsignedintb; floatc;,數(shù)據(jù)轉(zhuǎn)換,隱式轉(zhuǎn)換的優(yōu)先級(jí)順序如下: bitcharintlongfloat signedunsigned 也就是說(shuō),當(dāng)char型與int型進(jìn)行運(yùn)算時(shí),先自動(dòng)對(duì)char型擴(kuò)展為int型,然后與int型進(jìn)行運(yùn)算,運(yùn)算結(jié)果為int型。C51除了支持隱式類(lèi)型轉(zhuǎn)換外,還可以通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換符“()”對(duì)數(shù)據(jù)類(lèi)型進(jìn)行人為的強(qiáng)制轉(zhuǎn)換。 C5l編譯器除了能支持以上這些基本數(shù)據(jù)類(lèi)型之外,還能支持一些復(fù)雜的組合型數(shù)據(jù)類(lèi)型,如數(shù)組類(lèi)型、指針類(lèi)型、結(jié)構(gòu)類(lèi)型、聯(lián)合類(lèi)型等這些復(fù)雜的數(shù)據(jù)類(lèi)型,在后面將相繼介紹。,C51數(shù)據(jù)的存儲(chǔ),MCS-51單片機(jī)只有bit和un
11、signed char兩種數(shù)據(jù)類(lèi)型支持機(jī)器指令,而其它類(lèi)型的數(shù)據(jù)都需要轉(zhuǎn)換成bit或unsigned char型進(jìn)行存儲(chǔ)。 為了減少單片機(jī)的存儲(chǔ)空間和提高運(yùn)行速度,要盡可能地使用unsigned char型數(shù)據(jù)。 一、位變量的存儲(chǔ) bit和sbit型位變量,直接存于RAM的位尋址空間,包括低128位和特殊功能寄存器位。,C51數(shù)據(jù)的存儲(chǔ),二、字符變量的存儲(chǔ) 字符變量(char):無(wú)論是unsigned char數(shù)據(jù)還是signed char數(shù)據(jù),均為1個(gè)字節(jié),能夠被直接存儲(chǔ)在RAM中,可以存儲(chǔ)在00 x7f區(qū)域,也可以存儲(chǔ)在0 x800 xff區(qū)域,與變量的定義有關(guān)。 unsigned cha
12、r數(shù):可直接被MSC-51接受 signed char數(shù)據(jù):用補(bǔ)碼表示。需要額外的操作來(lái)測(cè)試、處理符號(hào)位,使用的是兩種庫(kù)函數(shù),代碼量大,運(yùn)算速度降低。,C51數(shù)據(jù)的存儲(chǔ),三、整型變量的存儲(chǔ) 整型變量(int):不管是unsigned int數(shù)據(jù)還是signed int數(shù)據(jù),均為2個(gè)字節(jié),其存儲(chǔ)方法是高位字節(jié)保存在低地址(在前面),低位字節(jié)保存在高地址(在后面) 。 例如:整型變量的值為0 x1234,在內(nèi)存中的存放如右圖所示。 signed int數(shù)據(jù)用補(bǔ)碼表示。,C51數(shù)據(jù)的存儲(chǔ),四、長(zhǎng)整型變量的存儲(chǔ) 長(zhǎng)整型變量(long)為4個(gè)字節(jié),其存儲(chǔ)方法與整型數(shù)據(jù)一樣,是最高位字節(jié)保存的地址最低(在
13、最前面),最低位字節(jié)保存的地址最高(在最后面)。 如長(zhǎng)整型變量的值為0 x12345678,在內(nèi)存中的存放方法如右圖所示。不管是unsigned long數(shù)據(jù)還是signed long數(shù)據(jù),C51數(shù)據(jù)的存儲(chǔ),五、浮點(diǎn)型變量的存儲(chǔ) 浮點(diǎn)型變量(fload)占4個(gè)字節(jié),用指數(shù)方式表示,其具體格式與編譯器有關(guān)。 對(duì)于Keil C,采用的是IEEE-754標(biāo)準(zhǔn),具有24位精度,尾數(shù)的最高位始終為1,因而不保存。具體分布為:1位符號(hào)位,8位階碼位,23位尾數(shù),如下圖所示。,C51數(shù)據(jù)的存儲(chǔ),符號(hào)位S:1表示負(fù)數(shù),0表示正數(shù)。 階碼:用移碼表示。如,實(shí)際階碼-126用1表示,實(shí)際階碼0用127表示,即實(shí)際
14、階碼數(shù)加上127得到階碼的表達(dá)數(shù)。 階碼數(shù)值范圍:-126+128。,C51數(shù)據(jù)的存儲(chǔ),例如:浮點(diǎn)數(shù)-12.5 符號(hào)位為1,12.5的二進(jìn)制數(shù)1100.1=1.1001E+0011, 階碼數(shù)值為:3+127=130=10000010B, 尾數(shù)為1001。 因此,其十六進(jìn)制數(shù)為0 xC1480000,則存儲(chǔ)結(jié)構(gòu)如右圖所示。,C51變量,C51變量定義的一般格式為: 存儲(chǔ)類(lèi)型數(shù)據(jù)類(lèi)型 存儲(chǔ)區(qū) 變量名1=初值 ,變量名2=初值 , 或存儲(chǔ)類(lèi)型存儲(chǔ)區(qū) 數(shù)據(jù)類(lèi)型 變量名1=初值 ,變量名2=初值 , 可見(jiàn)變量(非位變量)的定義由4部分組成,即在變量定義時(shí),指定變量4種屬性。,變量存儲(chǔ)種類(lèi),存儲(chǔ)種類(lèi)是指變
15、量在程序執(zhí)行過(guò)程中的作用范圍。C51變量的存儲(chǔ)種類(lèi)有四種,分別是自動(dòng)(auto),外部(extern)、靜態(tài)(static)和寄存器(register)。 1auto: 使用auto定義的變量稱(chēng)為自動(dòng)變量,其作用范圍在定義它的函數(shù)體或復(fù)合語(yǔ)句內(nèi)部,當(dāng)定義它的函數(shù)體或復(fù)合語(yǔ)句執(zhí)行時(shí),C51才為該變量分配內(nèi)存空間,結(jié)束時(shí)占用的內(nèi)存空間釋放。自動(dòng)變量一般分配在內(nèi)存的堆??臻g中。定義變量時(shí),如果省略存儲(chǔ)種類(lèi),則該變量默認(rèn)為自動(dòng)(auto)變量 Int a ;,2extern: 使用extern定義的變量稱(chēng)為外部變量。在一個(gè)函數(shù)體內(nèi),要使用一個(gè)已在該函數(shù)體外或別的程序中定義過(guò)的外部變量時(shí),該變量在該函數(shù)
16、體內(nèi)要用extern說(shuō)明。外部變量被定義后分配固定的內(nèi)存空間,在程序整個(gè)執(zhí)行時(shí)間內(nèi)都有效,直到程序結(jié)束才釋放。 3static: 使用static定義的變量稱(chēng)為靜態(tài)變量。它又分為內(nèi)部靜態(tài)變量和外部靜態(tài)變量。在函數(shù)體內(nèi)部定義的靜態(tài)變量為內(nèi)部靜態(tài)變量,它在對(duì)應(yīng)的函數(shù)體內(nèi)有效,一直存在,但在函數(shù)體外不可見(jiàn),這樣不僅使變量在定義它的函數(shù)體外被保護(hù),還可以實(shí)現(xiàn)當(dāng)離開(kāi)函數(shù)時(shí)值不被改變。外部靜態(tài)變量上在函數(shù)外部定義的靜態(tài)變量。它在程序中一直存在,但在定義的范圍之外是不可見(jiàn)的。如在多文件或多模塊處理中,外部靜態(tài)變量只在文件內(nèi)部或模塊內(nèi)部有效。,4register: 使用register定義的變量稱(chēng)為寄存器變量
17、。它定義的變量存放在CPU內(nèi)部的寄存器中,處理速度快,但數(shù)目少。C51編譯器編譯時(shí)能自動(dòng)識(shí)別程序中使用頻率最高的變量,并自動(dòng)將其作為寄存器變量,用戶(hù)可以無(wú)需專(zhuān)門(mén)聲明。,五特殊功能寄存器變量 89C51系列單片機(jī)片內(nèi)有許多特殊功能寄存器,通過(guò)這些特殊功能寄存器可以控制89C51系列單片機(jī)的定時(shí)器、計(jì)數(shù)器、串口、I/O及其它功能部件,每一個(gè)特殊功能寄存器在片內(nèi)RAM中都對(duì)應(yīng)于一個(gè)字節(jié)單元或兩個(gè)字節(jié)單元。 在C51中,允許用戶(hù)對(duì)這些特殊功能寄存器進(jìn)行訪(fǎng)問(wèn),訪(fǎng)問(wèn)時(shí)須通過(guò)sfr或sfr16類(lèi)型說(shuō)明符進(jìn)行定義,定義時(shí)須指明它們所對(duì)應(yīng)的片內(nèi)RAM單元的地址。格式如下: sfr或sfr16 特殊功能寄存器名=
18、地址; sfr用于對(duì)89C51單片機(jī)中單字節(jié)的特殊功能寄存器進(jìn)行定義,sfr16用于對(duì)雙字節(jié)特殊功能寄存器進(jìn)行定義。特殊功能寄存器名一般用大寫(xiě)字母表示。地址一般用直接地址形式,具體特殊功能寄存器地址見(jiàn)前面內(nèi)容。,C51的運(yùn)算符及表達(dá)式,在表達(dá)式的后邊加一個(gè)分號(hào)“;”就構(gòu)成了表達(dá)式語(yǔ)句 ,如: a=+b*9; x=8;y=7; +k; 可以一行放一個(gè)表達(dá)式形成表達(dá)式語(yǔ)句,也可以一行放多個(gè)表達(dá)式形成表達(dá)式語(yǔ)句,這時(shí)每個(gè)表達(dá)式后面都必須帶“;”號(hào),另外,還可以?xún)H由個(gè)分號(hào)“;”占一行形成一個(gè)表達(dá)式語(yǔ)句,這種語(yǔ)句稱(chēng)為空語(yǔ)句。,C51的運(yùn)算符及表達(dá)式,空語(yǔ)句在程序設(shè)計(jì)中通常用于兩種情況: (1)在程序中為
19、有關(guān)語(yǔ)句提供標(biāo)號(hào),用以標(biāo)記程序執(zhí)行的位置。例如采用下面的語(yǔ)句可以構(gòu)成一個(gè)循環(huán)。 repeat:; ; goto repeat; (2)在用while語(yǔ)句構(gòu)成的循環(huán)語(yǔ)句后面加一個(gè)分號(hào),形成一個(gè)不執(zhí)行其它操作的空循環(huán)體。這種結(jié)構(gòu)通常用于對(duì)某位進(jìn)行判斷,當(dāng)不滿(mǎn)足條件則等待,滿(mǎn)足條件則執(zhí)行。,復(fù)合語(yǔ)句,復(fù)合語(yǔ)句是由若干條語(yǔ)句組合而成的一種語(yǔ)句,在C51中,用一個(gè)大括號(hào)“ ”將若干條語(yǔ)句括在一起就形成了一個(gè)復(fù)合語(yǔ)句,復(fù)合語(yǔ)句最后不需要以分號(hào)“;”結(jié)束,但它內(nèi)部的各條語(yǔ)句仍需以分號(hào)“;”結(jié)束。復(fù)合語(yǔ)句的一般形式為: 局部變量定義; 語(yǔ)句l; 語(yǔ)句2; ,復(fù)合語(yǔ)句,復(fù)合語(yǔ)句在執(zhí)行時(shí),其中的各條單語(yǔ)句按順序依
20、次執(zhí)行,整個(gè)復(fù)合語(yǔ)句在語(yǔ)法上等價(jià)于一條單語(yǔ)句,因此在C51中可以將復(fù)合語(yǔ)句視為一條單語(yǔ)句。通常復(fù)合語(yǔ)句出現(xiàn)在函數(shù)中,實(shí)際上,函數(shù)的執(zhí)行部分(即函數(shù)體)就是一個(gè)復(fù)合語(yǔ)句;復(fù)合語(yǔ)句中的單語(yǔ)句一般是可執(zhí)行語(yǔ)句,此外還可以是變量的定義語(yǔ)句(說(shuō)明變量的數(shù)據(jù)類(lèi)型)。在復(fù)合語(yǔ)句內(nèi)部語(yǔ)句所定義的變量,稱(chēng)為該復(fù)合語(yǔ)句中的局部變量,它僅在當(dāng)前這個(gè)復(fù)合語(yǔ)句中有效。利用復(fù)合語(yǔ)句將多條單語(yǔ)句組合在起,以及在復(fù)合語(yǔ)句中進(jìn)行局部變量定義是C51語(yǔ)言的一個(gè)重要特征。,C51程序基本結(jié)構(gòu)與相關(guān)語(yǔ)句,C51的基本結(jié)構(gòu): 一、順序結(jié)構(gòu) 二、選擇結(jié)構(gòu) 三、循環(huán)結(jié)構(gòu) C51的相關(guān)語(yǔ)句: 一、if else Switch/case 二、
21、while do while for 三、break/continue 四、return,函 數(shù),函數(shù)定義的一般格式如下: 函數(shù)類(lèi)型 函數(shù)名(形式參數(shù)表) reentrantinterrupt musing n 形式參數(shù)說(shuō)明 局部變量定義 函數(shù)體 前面部件稱(chēng)為函數(shù)的首部,后面稱(chēng)為函數(shù)的尾部,格式說(shuō)明: 1函數(shù)類(lèi)型 函數(shù)類(lèi)型說(shuō)明了函數(shù)返回值的類(lèi)型。 2函數(shù)名 函數(shù)名是用戶(hù)為自定義函數(shù)取的名字以便調(diào)用函數(shù)時(shí)使用。 3形式參數(shù)表 形式參數(shù)表用于列錄在主調(diào)函數(shù)與被調(diào)用函數(shù)之間進(jìn)行數(shù)據(jù)傳遞的形式參數(shù)。,函數(shù)的調(diào)用與聲明,函數(shù)調(diào)用的一般形式如下: 函數(shù)名(實(shí)參列表); 對(duì)于有參數(shù)的函數(shù)調(diào)用,若實(shí)參列表包含多個(gè)實(shí)參,則各個(gè)實(shí)參之間用逗號(hào)隔開(kāi)。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 共享紙巾銷(xiāo)售合同范例
- 債券認(rèn)購(gòu)服務(wù)合同范例
- 上班交押金合同范本
- 2024年01月廣西2024年廣西北部灣銀行(防城港)招考筆試歷年參考題庫(kù)附帶答案詳解
- 與酒店合同范例
- 養(yǎng)雞戶(hù)合同范例
- 包銷(xiāo)合同范例城市公寓
- 2025至2031年中國(guó)迷你移動(dòng)存儲(chǔ)設(shè)備行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 代理記帳書(shū)面合同范例
- pc吊裝合同范例
- 2024-2025學(xué)年湖北省武漢市部分重點(diǎn)中學(xué)高一上學(xué)期期末聯(lián)考數(shù)學(xué)試卷(含答案)
- 排球正面上手傳球 說(shuō)課稿-2023-2024學(xué)年高一上學(xué)期體育與健康人教版必修第一冊(cè)
- 2025年浙江省交通投資集團(tuán)財(cái)務(wù)共享服務(wù)中心招聘2名高頻重點(diǎn)提升(共500題)附帶答案詳解
- 做投標(biāo)文件培訓(xùn)
- 9.4+跨學(xué)科實(shí)踐:制作簡(jiǎn)易活塞式抽水機(jī)課件+-2024-2025學(xué)年人教版物理八年級(jí)下冊(cè)
- 建筑工程工作計(jì)劃
- 2025年中國(guó)國(guó)際投資促進(jìn)中心限責(zé)任公司招聘管理單位筆試遴選500模擬題附帶答案詳解
- 瓶裝液化氣送氣工培訓(xùn)
- 外科護(hù)理課程思政課程標(biāo)準(zhǔn)
- 船舶航行安全
- 道德經(jīng)全文完整版本
評(píng)論
0/150
提交評(píng)論