摘 要:C語(yǔ)言是一切計(jì)算機(jī)語(yǔ)言的基礎(chǔ),在計(jì)算機(jī)軟件編程中應(yīng)用十分廣泛。本文首先簡(jiǎn)單概述了C語(yǔ)言的相關(guān)內(nèi)容,然后分別從C語(yǔ)言的編程技巧以及兩個(gè)不同類(lèi)型的基于C語(yǔ)言的計(jì)算機(jī)軟件編程案例進(jìn)行分析研究,希望能夠?qū)ν醒芯空哂兴鶐椭?/p>
關(guān) 鍵 詞:C語(yǔ)言;計(jì)算機(jī);軟件編程;實(shí)驗(yàn)研究
一、C語(yǔ)言的概述
在1967年BCPL語(yǔ)言被英國(guó)MartinRichards 推出,到1970 年B 語(yǔ)言以BCPL 語(yǔ)言為基礎(chǔ)被美國(guó)Ken Thompson推出[1]。但是B 語(yǔ)言過(guò)于簡(jiǎn)單,而且功能有限,經(jīng)過(guò)研究者的多次試驗(yàn)研究,在1972—1973 年,C 語(yǔ)言在B 語(yǔ)言的基礎(chǔ)上經(jīng)過(guò)完善,被美國(guó)貝爾實(shí)驗(yàn)室D.M推出[2]。在各種計(jì)算機(jī)編程語(yǔ)言中,C語(yǔ)言屬于一門(mén)高級(jí)語(yǔ)言,它是一切計(jì)算機(jī)語(yǔ)言的基礎(chǔ),擁有高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的特點(diǎn),靈活方便,簡(jiǎn)潔緊湊;而且它的語(yǔ)法限制不嚴(yán)格,程序員在設(shè)計(jì)時(shí)程序書(shū)寫(xiě)自由。不僅能夠編寫(xiě)系統(tǒng)軟件,同時(shí)還可以編寫(xiě)應(yīng)用軟件,能夠適應(yīng)于多種操作系統(tǒng),應(yīng)用廣泛,可移植性強(qiáng)??傊?,C語(yǔ)言對(duì)于信息技術(shù)的發(fā)展具有十分重要的作用和價(jià)值。
二、基于C語(yǔ)言的計(jì)算機(jī)軟件編程實(shí)驗(yàn)研究
(一) C語(yǔ)言的編程技巧
1.靈活運(yùn)用指針
在C語(yǔ)言編程的時(shí)候,指針是一種特殊類(lèi)型的變量,它能夠幫助程序員有效的表達(dá)和解決程序設(shè)計(jì)過(guò)程中遇到的復(fù)雜問(wèn)題,熟練掌握指針是必要的。指針具有三要素:指針名以及指針類(lèi)型和值[3]。在編程時(shí),指針和一般變量名相同,但是在類(lèi)型以及值上具有區(qū)別,另外,指針不僅能夠被用于表示數(shù)組,還可以被作為函數(shù)的參數(shù)返回值。
2.C 語(yǔ)言的特有函數(shù)
在C語(yǔ)言編程的時(shí)候,有時(shí)需要用到一些特有函數(shù)。函數(shù)都具有一定的功能,同時(shí)函數(shù)名也反映了該函數(shù)的功能。在進(jìn)行函數(shù)定義時(shí),程序員需要把函數(shù)的名字、返回值類(lèi)型以及參數(shù)名等各項(xiàng)都進(jìn)行定義。另外,因?yàn)閹?kù)函數(shù)是由C 編譯系統(tǒng)提供的,這些函數(shù)均是系統(tǒng)首先定義好的,在程序調(diào)用的時(shí)候,程序員只需利用“#include 指令”把與之相關(guān)的頭文件包含到所用文件中即可[4]。例如,在程序運(yùn)行的過(guò)程中,如果用到了sqrt函數(shù),則為了保證程序運(yùn)行下去,頭文件必須含有#include“string .h”。
3.算法技巧
在程序設(shè)計(jì)的過(guò)程中,算法是程序的靈魂,因此,掌握一定的算法技巧是必不可少的。通常情況下,算法不僅可以用自然語(yǔ)言表示,有的時(shí)候也利用流程圖表示。需要注意的是,利用流程圖表示算法時(shí),程序設(shè)計(jì)員必須熟練掌握常用的流程圖符號(hào)[5]。且“數(shù)學(xué)乃是計(jì)算機(jī)之母”,牢固的數(shù)學(xué)知識(shí)同樣能夠提升編程效率。
4.位運(yùn)算以及文件知識(shí)
相比其他計(jì)算機(jī)高級(jí)語(yǔ)言的運(yùn)算方法,位運(yùn)算作為C 語(yǔ)言的重要特色,具有獨(dú)特性和唯一性。位運(yùn)算是以二進(jìn)制位為對(duì)象,然后結(jié)合相關(guān)程序要求進(jìn)行各種運(yùn)算。文件包含有數(shù)據(jù)文件以及程序文件,是計(jì)算機(jī)不可缺少的,程序設(shè)計(jì)員在進(jìn)行編程時(shí),需要把所寫(xiě)的程序存儲(chǔ)的文件之中,這樣可以便于程序員查找數(shù)據(jù),提升查找效率。
(二) C語(yǔ)言和匯編語(yǔ)言混合的程序設(shè)計(jì)案例分析
在本次的實(shí)驗(yàn)之中,在進(jìn)行程序嵌入時(shí),有其固定的格式,需要在嵌入的各行代碼之前加“asm”關(guān)鍵字,也可以直接在asm代碼塊中放入?yún)R編語(yǔ)句。但是程序設(shè)計(jì)者在進(jìn)行嵌入時(shí),一定要注意滿(mǎn)足以下條件:匯編語(yǔ)言指令代碼中關(guān)鍵字asm必不可少,且要放在指令代碼之前;嵌入?yún)R編語(yǔ)言指令代碼能夠和正常C語(yǔ)言程序混合,但是C語(yǔ)言的分隔符“;”必不可少;嵌入?yún)R編語(yǔ)言時(shí)C語(yǔ)言的注釋分界符必不可少,分別是“/*”和“*/” [6]。
(2)首先編寫(xiě)C語(yǔ)言程序以及匯編程序,然后獨(dú)立編譯目標(biāo)代碼模塊,最終進(jìn)行鏈接。
首先,在進(jìn)行混合編程時(shí),C語(yǔ)言程序能夠調(diào)用匯編語(yǔ)言的各種子程序以及其定義的變量,同時(shí),C語(yǔ)言編寫(xiě)的函數(shù)以及定義的變量等也可以被匯編語(yǔ)言調(diào)用。而且混合編程的過(guò)程中,一個(gè)任務(wù)往往是由若干個(gè)功能模塊組成,且不同的功能模塊均是利用合適的語(yǔ)言進(jìn)行獨(dú)立編程,且以函數(shù)的形式存在。因此,程序設(shè)計(jì)者要根據(jù)每一模塊的特點(diǎn)選擇相應(yīng)的語(yǔ)言和語(yǔ)言編程系統(tǒng)進(jìn)行獨(dú)立編程,并形成目標(biāo)文件,繼而連接目標(biāo)文件,形成完整的可執(zhí)行文件。
在混合編程的過(guò)程中,設(shè)計(jì)者需要注意五個(gè)問(wèn)題:參數(shù)傳遞問(wèn)題;寄存器的使用問(wèn)題;存儲(chǔ)模式;變量以及函數(shù)的調(diào)用問(wèn)題;子程序的返回值問(wèn)題。
其中,關(guān)于參數(shù)傳遞問(wèn)題,在進(jìn)行C語(yǔ)言程序調(diào)用匯編程序時(shí),必須遵從參數(shù)傳遞原則,利用堆棧把參數(shù)傳遞給匯編程序。例如,在C語(yǔ)言程序中含有函數(shù):voidaa(char*p,int i),這個(gè)函數(shù)是利用匯編語(yǔ)言進(jìn)行編寫(xiě)的,如果編譯是在小內(nèi)存模式下實(shí)施的,系統(tǒng)在進(jìn)行調(diào)用時(shí),則寫(xiě)成aa(&q , n);運(yùn)行時(shí)程序首先把n壓入堆棧,然后再把&q壓入堆棧,當(dāng)參數(shù)傳遞過(guò)來(lái)并被匯編語(yǔ)言的子程序取得時(shí),BP寄存器便被用作基地址寄存器,實(shí)現(xiàn)對(duì)棧中所存數(shù)據(jù)進(jìn)行存取操作。通常情況下,由于調(diào)用的子程序和C語(yǔ)言程序往往使用同一個(gè)堆棧,所以在程序執(zhí)行時(shí),匯編語(yǔ)言子程序需要執(zhí)行兩條指令:push bp pop bp、sp[7]。
2.混合的軟件編程實(shí)例分析
三、小結(jié)
綜上所述,隨著信息技術(shù)的不斷發(fā)展,人們對(duì)于計(jì)算機(jī)軟件編程的功能要求也將越來(lái)越高,而利用C語(yǔ)言能夠?qū)崿F(xiàn)計(jì)算機(jī)軟件的多種功能,因此研究者應(yīng)當(dāng)強(qiáng)化對(duì)于C語(yǔ)言的計(jì)算機(jī)軟件編程實(shí)驗(yàn)研究,開(kāi)發(fā)功能更加強(qiáng)大的軟件。
參考文獻(xiàn)
[1] 侯宏霞.提高“匯編語(yǔ)言”課程實(shí)驗(yàn)教學(xué)質(zhì)量的幾點(diǎn)思考[J].內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2011(01):25-26.
[2] 劉海峰.以培養(yǎng)實(shí)踐能力為導(dǎo)向的“C語(yǔ)言”教學(xué)方法探討[J].科技經(jīng)濟(jì)市場(chǎng),2008(12):33-34.
[3] 阿娜古麗·阿布拉.C語(yǔ)言與匯編語(yǔ)言相互調(diào)用實(shí)現(xiàn)混合編程[J].電腦編程技巧與維護(hù),2009(10):71-74.
[4] 劉丹,劉德山.C語(yǔ)言程序設(shè)計(jì)課程綜合性和設(shè)計(jì)性實(shí)驗(yàn)研究[J].計(jì)算機(jī)教育,2012(09):31-32.
[5] 王應(yīng)軍,曲培新,趙晨萍.ARM匯編語(yǔ)言與C語(yǔ)言混合編程的實(shí)現(xiàn)方法[J].科技信息,2010(03):69-71.
[6] 方艷紅,趙海龍.計(jì)算機(jī)高級(jí)語(yǔ)言程序設(shè)計(jì)類(lèi)課程實(shí)踐教學(xué)改革研究[J].中國(guó)科技信息,2008(19):12-14.
[7] 卜登立,等.“匯編語(yǔ)言程序設(shè)計(jì)”課程教學(xué)改革研究與探討[J].井岡山大學(xué)學(xué)報(bào),2009(5):45-46.