什么是C語(yǔ)言?利用C語(yǔ)言幵發(fā)單片機(jī)的優(yōu)點(diǎn)!
C語(yǔ)言是一門(mén)面向過(guò)程的、抽象化的通用程序設(shè)計(jì)語(yǔ)言,廣泛應(yīng)用于底層開(kāi)發(fā)。C語(yǔ)言能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器。C語(yǔ)言是僅產(chǎn)生少量的機(jī)器語(yǔ)言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計(jì)語(yǔ)言。盡管C語(yǔ)言提供了許多低級(jí)處理的功能,但仍然保持著跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫(xiě)出的C語(yǔ)言程序可在包括類(lèi)似嵌入式處理器以及超級(jí)計(jì)算機(jī)等作業(yè)平臺(tái)的許多計(jì)算機(jī)平臺(tái)上進(jìn)行編譯。
當(dāng)前階段,在編程領(lǐng)域中,C語(yǔ)言的運(yùn)用非常之多,它兼顧了高級(jí)語(yǔ)言和匯編語(yǔ)言的優(yōu)點(diǎn),相較于其它編程語(yǔ)言具有較大優(yōu)勢(shì)。計(jì)算機(jī)系統(tǒng)設(shè)計(jì)以及應(yīng)用程序編寫(xiě)是C語(yǔ)言應(yīng)用的兩大領(lǐng)域。同時(shí),C語(yǔ)言的普適較強(qiáng),在許多計(jì)算機(jī)操作系統(tǒng)中都能夠得到適用,且效率顯著。C語(yǔ)言擁有經(jīng)過(guò)了漫長(zhǎng)發(fā)展歷史的完整的理論體系,在編程語(yǔ)言中具有舉足輕重的地位。
C語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言,它有著清晰的層次,可按照模塊的方式對(duì)程序進(jìn)行編寫(xiě),十分有利于程序的調(diào)試,且c語(yǔ)言的處理和表現(xiàn)能力都非常的強(qiáng)大,依靠非常全面的運(yùn)算符和多樣的數(shù)據(jù)類(lèi)型,可以輕易完成各種數(shù)據(jù)結(jié)構(gòu)的構(gòu)建,通過(guò)指針類(lèi)型更可對(duì)內(nèi)存直接尋址以及對(duì)硬件進(jìn)行直接操作,因此既能夠用于開(kāi)發(fā)系統(tǒng)程序,也可用于開(kāi)發(fā)應(yīng)用軟件。通過(guò)對(duì)C語(yǔ)言進(jìn)行研究分析,總結(jié)出其主要特點(diǎn)如下:
(1)簡(jiǎn)潔的語(yǔ)言C語(yǔ)言包含的各種控制語(yǔ)句僅有9種,關(guān)鍵字也只有32個(gè),程序的編寫(xiě)要求不嚴(yán)格且以小寫(xiě)字母為主,對(duì)許多不必要的部分進(jìn)行了精簡(jiǎn)。實(shí)際上,語(yǔ)句構(gòu)成與硬件有關(guān)聯(lián)的較少,且C語(yǔ)言本身不提供與硬件相關(guān)的輸入輸出、文件管理等功能,如需此類(lèi)功能,需要通過(guò)配合編譯系統(tǒng)所支持的各類(lèi)庫(kù)進(jìn)行編程,故c語(yǔ)言擁有非常簡(jiǎn)潔的編譯系統(tǒng)。
(2)具有結(jié)構(gòu)化的控制語(yǔ)句C語(yǔ)言是一種結(jié)構(gòu)化的語(yǔ)言,提供的控制語(yǔ)句具有結(jié)構(gòu)化特征,如for語(yǔ)句、if...else語(yǔ)句和switch語(yǔ)句等。可以用于實(shí)現(xiàn)函數(shù)的邏輯控制,方便面向過(guò)程的程序設(shè)計(jì)。
(3)豐富的數(shù)據(jù)類(lèi)型C語(yǔ)言包含的數(shù)據(jù)類(lèi)型廣泛,不僅包含有傳統(tǒng)的字符型、整型、浮點(diǎn)型、數(shù)組類(lèi)型等數(shù)據(jù)類(lèi)型,還具有其他編程語(yǔ)言所不具備的數(shù)據(jù)類(lèi)型,其中以指針類(lèi)型數(shù)據(jù)使用最為靈活,可以通過(guò)編程對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行計(jì)算。
(4)豐富的運(yùn)算符C語(yǔ)言包含34個(gè)運(yùn)算符,它將賦值、括號(hào)等均視作運(yùn)算符來(lái)操作,使C程序的表達(dá)式類(lèi)型和運(yùn)算符類(lèi)型均非常豐富。
(5)可對(duì)物理地址進(jìn)行直接操作C語(yǔ)言允許對(duì)硬件內(nèi)存地址進(jìn)行直接讀寫(xiě),以此可以實(shí)現(xiàn)匯編語(yǔ)言的主要功能,并可直接操作硬件。C語(yǔ)言不但具備高級(jí)語(yǔ)言所具有的良好特性,又包含了許多低級(jí)語(yǔ)言的優(yōu)勢(shì),故在系統(tǒng)軟件編程領(lǐng)域有著廣泛的應(yīng)用。
(6)代碼具有較好的可移植性C語(yǔ)言是面向過(guò)程的編程語(yǔ)言,用戶(hù)只需要關(guān)注所被解決問(wèn)題的本身,而不需要花費(fèi)過(guò)多的精力去了解相關(guān)硬件,且針對(duì)不同的硬件環(huán)境,在用C語(yǔ)言實(shí)現(xiàn)相同功能時(shí)的代碼基本一致,不需或僅需進(jìn)行少量改動(dòng)便可完成移植,這就意味著,對(duì)于一臺(tái)計(jì)算機(jī)編寫(xiě)的C程序可以在另一臺(tái)計(jì)算機(jī)上輕松地運(yùn)行,從而極大的減少了程序移植的工作強(qiáng)度。
(7)可生成高質(zhì)量、目標(biāo)代碼執(zhí)行效率高的程序與其他高級(jí)語(yǔ)言相比,C語(yǔ)言可以生成高質(zhì)量和高效率的目標(biāo)代碼,故通常應(yīng)用于對(duì)代碼質(zhì)量和執(zhí)行效率要求較高的嵌入式系統(tǒng)程序的編寫(xiě)。
C語(yǔ)言作為一種非常方便的語(yǔ)言而得到廣泛的支持,很多硬件開(kāi)發(fā)都用C語(yǔ)言編程,如各種單片機(jī)、DSP、ARM等。C語(yǔ)言程序本身不依賴(lài)于機(jī)器硬件系統(tǒng),基本上不做修改或僅做簡(jiǎn)單的修改就可將程序從不同的系統(tǒng)移植過(guò)來(lái)直接使用。C語(yǔ)言提供了很多數(shù)學(xué)函數(shù)并支持浮點(diǎn)運(yùn)算,開(kāi)發(fā)效率高,可極大地縮短開(kāi)發(fā)時(shí)間,增加程序可讀性和可維護(hù)性。單片機(jī)的C51編程與用匯編ASM-51編程相比,有如下優(yōu)點(diǎn):
①對(duì)單片機(jī)的指令系統(tǒng)不要求有任何的了解,就可以用C語(yǔ)言直接編程操作單片機(jī)。
②寄存器分配、不同存儲(chǔ)器的尋址及數(shù)據(jù)類(lèi)型等細(xì)節(jié)完全由編譯器自動(dòng)管理。
③程序有規(guī)范的結(jié)構(gòu),可分成不同的函數(shù),可使程序結(jié)構(gòu)化。
④庫(kù)中包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力,使用方便。
⑤具有方便的模塊化編程技術(shù),使已編好的程序很容易移植。
C語(yǔ)言常用語(yǔ)法不多,尤其是單片機(jī)的C語(yǔ)言常用語(yǔ)法更少,初學(xué)者沒(méi)有必要再系統(tǒng)地將C語(yǔ)言重學(xué)一遍,只要跟著我們的教程學(xué)下去,當(dāng)遇到難點(diǎn)時(shí),停下來(lái)適當(dāng)?shù)夭殚咰語(yǔ)言書(shū)籍里的相關(guān)部分,便會(huì)很容易掌握,而且可以馬上應(yīng)用到實(shí)踐當(dāng)中,且記憶深刻。C語(yǔ)言?xún)H僅是一個(gè)開(kāi)發(fā)工具,其本身并不難,難的是如何在將來(lái)開(kāi)發(fā)龐大系統(tǒng)中靈活運(yùn)用C語(yǔ)言的正確邏輯編寫(xiě)出結(jié)構(gòu)完善的程序。在開(kāi)始學(xué)習(xí)之前,首先大家要有十足的信心,要有拿不下它誓不罷休的強(qiáng)烈愿望,我相信你們能行,你們要更加相信自己能行!