周潔
摘要:C語(yǔ)言是一種重要的編程語(yǔ)言,在當(dāng)今IT業(yè)的運(yùn)用十分廣泛。使用C語(yǔ)言來(lái)編寫(xiě)的程序簡(jiǎn)單、直接、準(zhǔn)確,極大地推動(dòng)了計(jì)算機(jī)軟件的更新迭代。本文通過(guò)對(duì)C語(yǔ)言發(fā)展歷程的回顧,介紹C語(yǔ)言獨(dú)有的一些編程技巧,總結(jié)C語(yǔ)言與匯編語(yǔ)言的結(jié)合方式,來(lái)對(duì)C語(yǔ)言的程序設(shè)計(jì)技巧進(jìn)行探討。
關(guān)鍵詞:C語(yǔ)言;軟件編程;計(jì)算機(jī)語(yǔ)言
前言:C語(yǔ)言的應(yīng)用十分廣泛,是一門(mén)通用的計(jì)算機(jī)編程語(yǔ)言。C語(yǔ)言給我們提供了一種編譯簡(jiǎn)單、不需要任何環(huán)境支持、有著良好的跨平臺(tái)特性的編程語(yǔ)言。這種語(yǔ)言編寫(xiě)出的程序可以在不同的計(jì)算機(jī)中運(yùn)行,甚至是在單片機(jī)上。
一、C語(yǔ)言的發(fā)展歷史
C語(yǔ)言的名字來(lái)源于它之前的另外一門(mén)計(jì)算機(jī)語(yǔ)言--B語(yǔ)言。
關(guān)于C語(yǔ)言的來(lái)源有一個(gè)傳奇的故事,上個(gè)世紀(jì)六十年代,貝爾實(shí)驗(yàn)室的一位研究員閑來(lái)無(wú)事,想在一臺(tái)空閑的機(jī)器上玩一款電腦游戲。但這臺(tái)空閑的機(jī)器上沒(méi)有操作系統(tǒng),于是出于同樣的愛(ài)好,他與另一位研究員一起著手為這臺(tái)機(jī)器設(shè)計(jì)一個(gè)簡(jiǎn)單有效的操作系統(tǒng)。為了設(shè)計(jì)操作系統(tǒng),他們著手開(kāi)始改造當(dāng)時(shí)的計(jì)算機(jī)語(yǔ)言BCPL,也就是B語(yǔ)言。最終,在B語(yǔ)言的基礎(chǔ)上,一種新的計(jì)算機(jī)語(yǔ)言被制造了出來(lái),取BCPL的第二個(gè)字母,定名為C語(yǔ)言。
1982年,美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)為C語(yǔ)言制定了國(guó)際統(tǒng)一的規(guī)范,使得C語(yǔ)言真正成為了世界性的通用計(jì)算機(jī)語(yǔ)言[1]。
C語(yǔ)言有著許多特點(diǎn),比如作為一個(gè)過(guò)程式語(yǔ)言,它具有結(jié)構(gòu)化的程序設(shè)計(jì),還有變量作用域和遞歸功能,參數(shù)既可以用值來(lái)傳遞,也可以用指針來(lái)傳遞。
在現(xiàn)有的各種計(jì)算機(jī)編程語(yǔ)言中,C語(yǔ)言是其他語(yǔ)言的基礎(chǔ)。C語(yǔ)言既方便又靈活,既有高級(jí)語(yǔ)言的功能,也能實(shí)現(xiàn)部分低級(jí)語(yǔ)言的功能。它打破了平臺(tái)顯示,可以在多個(gè)系統(tǒng)環(huán)境中自由書(shū)寫(xiě),在計(jì)算機(jī)程序發(fā)展史上有著十分重要的作用。
二、C語(yǔ)言的編程技巧
(一)C語(yǔ)言的特有函數(shù)
C語(yǔ)言與其他語(yǔ)言不同的地方,在于一些特有的函數(shù),這些函數(shù)只存在于C語(yǔ)言中,對(duì)于靈活使用C語(yǔ)言有十分重要的意義。在使用函數(shù)時(shí),程序員往往需要對(duì)函數(shù)的名字、參數(shù)、返回值等等信息進(jìn)行定義工作,一次來(lái)對(duì)整個(gè)函數(shù)進(jìn)行定義,來(lái)實(shí)現(xiàn)特定的功能。C語(yǔ)言在此之前首先將各種函數(shù)定義收集起來(lái),建立庫(kù)函數(shù)。在需要進(jìn)行程序調(diào)用時(shí),程序員可以直接飲用相關(guān)文件,使得定義函數(shù)的過(guò)程被大大簡(jiǎn)化了[2]。
(二)指針的運(yùn)用
在進(jìn)行程序編寫(xiě)時(shí),指針的運(yùn)用十分的廣泛,許多功能需要通過(guò)指針來(lái)實(shí)現(xiàn),比如建立變量關(guān)系。程序員需要靈活掌握指針,對(duì)于指針的運(yùn)用越嫻熟,編寫(xiě)程式的時(shí)候就更省力。指針是一種特殊類(lèi)型的變量,在編程時(shí),要對(duì)指針類(lèi)型和指針名進(jìn)行定義和賦值,從而對(duì)不同的類(lèi)型的指針、不同名的指針進(jìn)行區(qū)分。在使用指針時(shí),要利用C語(yǔ)言的獨(dú)特規(guī)律,按照規(guī)定算法編程,合理表達(dá)算法內(nèi)容。除此之外,在編寫(xiě)程序的過(guò)程中,程序要也要設(shè)置好函數(shù)的名字、參數(shù)名、返回值類(lèi)型,且在攝制過(guò)程中要確保適應(yīng)程序,從而方便查詢數(shù)據(jù)[3]。
(三)位運(yùn)算和算法技巧
所謂位運(yùn)算,指的是知識(shí)界對(duì)整數(shù)在內(nèi)存中的二進(jìn)制位進(jìn)行操作。在C語(yǔ)言的運(yùn)算當(dāng)中,位運(yùn)算占據(jù)著重要的地位。由于位運(yùn)算是針對(duì)二進(jìn)制位的運(yùn)算,具有獨(dú)特性和唯一性,是計(jì)算機(jī)編程的基礎(chǔ)。在程序運(yùn)行時(shí),程序文件的存在是必要的。為了方便查詢數(shù)據(jù),提高運(yùn)算效率,程序要把程序直接存儲(chǔ)在文件之中。在程序設(shè)計(jì)里,算法是程序的核心,如果掌握了算法,就掌握了程序設(shè)計(jì)的技巧。算法可以使用流程圖來(lái)變現(xiàn),這要求程序員比較好的了解流程圖的符號(hào),并且有過(guò)關(guān)的基礎(chǔ)知識(shí)。
三、C語(yǔ)言與匯編語(yǔ)言的結(jié)合
(一)匯編語(yǔ)言的嵌入
匯編語(yǔ)言是C語(yǔ)言之外的計(jì)算機(jī)編程語(yǔ)言。隨著技術(shù)的進(jìn)步,各種計(jì)算機(jī)語(yǔ)言開(kāi)始呈現(xiàn)互相交流的態(tài)勢(shì)。如果能把C語(yǔ)言和匯編語(yǔ)言結(jié)合,具體來(lái)說(shuō),就是把匯編語(yǔ)言卻陷入到C語(yǔ)言當(dāng)中,能夠使程序開(kāi)發(fā)更加靈活、更加有效率。那么怎么進(jìn)行匯編語(yǔ)言的嵌入呢?舉個(gè)例子。如果是有2個(gè)參數(shù)的內(nèi)嵌語(yǔ)句,下面這種形式的匯編可以在簡(jiǎn)單的語(yǔ)句中靈活使用。這是將C語(yǔ)言的一個(gè)整型變量傳遞給匯編,邏輯左移一位后在傳遞給C語(yǔ)言的另外一個(gè)整型變量[4]。
/* Rotating bits example */
asm("mov %[result], %[value], ror#1" : [result] "=r" (y) : [value] "r" (x));
在實(shí)際程序編寫(xiě)中,嵌入的語(yǔ)言要用大括號(hào)來(lái)表示,用這樣的方式可以進(jìn)一步簡(jiǎn)化變成的過(guò)程。等到匯編語(yǔ)言的程序成功嵌入之后,程序員要根據(jù)C語(yǔ)言對(duì)函數(shù)進(jìn)行指出和定義,對(duì)程序進(jìn)行定義,還要對(duì)不同函數(shù)進(jìn)行區(qū)分。
(二)C語(yǔ)言、匯編語(yǔ)言的鏈接
在C語(yǔ)言、匯編語(yǔ)言的嵌入式編寫(xiě)過(guò)程中,要對(duì)即將編譯的目標(biāo)設(shè)置代碼,這之后才能順利實(shí)現(xiàn)倆接。C語(yǔ)言和匯編語(yǔ)言的程序是可以互相動(dòng)用的,每一個(gè)任務(wù)都有許多個(gè)不同功能的模塊了共同完成。所以,在進(jìn)行程序編寫(xiě)時(shí),程序員要及時(shí)確定每一個(gè)功能模塊自身的特點(diǎn),設(shè)置變成,使之成為可以直接執(zhí)行的目標(biāo)文件。
比如說(shuō),在Voidaa(char*p,int i)函數(shù)里,首先使用匯編雨來(lái)來(lái)編寫(xiě)這個(gè)函數(shù),然后把系統(tǒng)調(diào)整為低內(nèi)存模式,寫(xiě)成aa(&q,n),在堆棧中傳遞參數(shù)。這樣就會(huì)產(chǎn)生兩個(gè)執(zhí)行指令。將這兩個(gè)指令進(jìn)行設(shè)定,可以更方便地執(zhí)行運(yùn)算程序,不僅減少了主機(jī)的運(yùn)算負(fù)擔(dān),同時(shí)也大大提升了系統(tǒng)的運(yùn)轉(zhuǎn)效率。
結(jié)論:在眾多計(jì)算機(jī)編程語(yǔ)言當(dāng)中,C語(yǔ)言無(wú)疑有著特殊的魅力,吸引著一代又一代的技術(shù)人員學(xué)習(xí)它,使用它,并且為了證明這種語(yǔ)言的優(yōu)勢(shì)互相爭(zhēng)論。C語(yǔ)言深刻地改變了計(jì)算機(jī)技術(shù)的歷史,有了C語(yǔ)言,編程不再是令人望而生畏的了,因?yàn)樗蟠蠼档土司帉?xiě)程序的復(fù)雜程度。本文回顧了C語(yǔ)言一路走來(lái)的發(fā)展歷史,總結(jié)和提煉了C語(yǔ)言的編程技巧,為C語(yǔ)言的發(fā)展提供了參考和借鑒。
參考文獻(xiàn):
[1]蔚斌.計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)中編程語(yǔ)言的選擇研究[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2012,17:237-238.
[2]劉芳.計(jì)算機(jī)軟件開(kāi)發(fā)中JAVA編程語(yǔ)言的應(yīng)用價(jià)值[J].電子技術(shù)與軟件工程,2015,13:253.
[3]張利軍.計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)中不同編程語(yǔ)言的影響[J].科技傳播,2015,15:171-172.
[4]尹俊.基于計(jì)算機(jī)軟件開(kāi)發(fā)的JAVA編程語(yǔ)言分析[J].信息系統(tǒng)工程,2015,12:135.