王成
摘 要 隨著計算機網(wǎng)絡(luò)的不斷應(yīng)用,在其軟件的編程中,對于C語言的編程中,有助于計算機軟件的更新,并且能夠加快計算機在各行各業(yè)的使用范圍,因此在本文對C語言進行研究,分別從編程的技巧以及對于C語言計算機軟件編程實驗案例進行了具體的分析,促使計算機軟件在不斷的更新。
關(guān)鍵詞 C語言 軟件編程 實驗探討
中圖分類號:TP3 文獻標(biāo)識碼:A
1 C語言的概述
在各種計算機編程語言中,C語言屬于一門高級語言,它是一切計算機語言的基礎(chǔ),擁有高級語言和低級語言的特點,靈活方便,簡潔緊湊;而且它的語法限制不嚴(yán)格,程序員在設(shè)計時程序書寫自由。不僅能夠編寫系統(tǒng)軟件,同時還可以編寫應(yīng)用軟件,能夠適應(yīng)于多種操作系統(tǒng),應(yīng)用廣泛,可移植性強??傊珻語言對于信息技術(shù)的發(fā)展具有十分重要的作用和價值。
2基于C語言的計算機軟件編程實驗研究
2.1C語言的編程技巧
(1)靈活運用指針
在C語言編程的時候,指針是一種特殊類型的變量,它能夠幫助程序員有效的表達和解決程序設(shè)計過程中遇到的復(fù)雜問題,熟練掌握指針是必要的。指針具有三要素:指針名以及指針類型和值。在編程時,指針和一般變量名相同,但是在類型以及值上具有區(qū)別,另外,指針不僅能夠被用于表示數(shù)組,還可以被作為函數(shù)的參數(shù)返回值。
(2)C 語言的特有函數(shù)
在C語言編程的時候,有時需要用到一些特有函數(shù)。函數(shù)都具有一定的功能,同時函數(shù)名也反映了該函數(shù)的功能。在進行函數(shù)定義時,程序員需要把函數(shù)的名字、返回值類型以及參數(shù)名等各項都進行定義。另外,因為庫函數(shù)是由C 編譯系統(tǒng)提供的,這些函數(shù)均是系統(tǒng)首先定義好的,在程序調(diào)用的時候,程序員只需利用“#include 指令”把與之相關(guān)的頭文件包含到所用文件中即可。
(3)算法技巧
在程序設(shè)計的過程中,算法是程序的靈魂,因此,掌握一定的算法技巧是必不可少的。通常情況下,算法不僅可以用自然語言表示,有的時候也利用流程圖表示。需要注意的是,利用流程圖表示算法時,程序設(shè)計員必須熟練掌握常用的流程圖符號。且“數(shù)學(xué)乃是計算機之母”,牢固的數(shù)學(xué)知識同樣能夠提升編程效率。
(4)位運算以及文件知識
相比其他計算機高級語言的運算方法,位運算作為C 語言的重要特色,具有獨特性和唯一性。位運算是以二進制位為對象,然后結(jié)合相關(guān)程序要求進行各種運算。文件包含有數(shù)據(jù)文件以及程序文件,是計算機不可缺少的,程序設(shè)計員在進行編程時,需要把所寫的程序存儲的文件之中,這樣可以便于程序員查找數(shù)據(jù),提升查找效率。
2.2 C語言和匯編語言混合的程序設(shè)計案例分析
(1)混合的軟件編程方法
隨著信息技術(shù)的不斷發(fā)展和應(yīng)用,在軟件開發(fā)過程中,大多時候需要使用兩種語言混合編程,有效地提高了程序的開發(fā)效率。通常情況下,混合的軟件編程方法有兩種,具體如下:
①把匯編語句嵌入C語言程序中。例如,把asm匯編語句嵌入到C語言源程序中:/*把5送到ax寄存器*/當(dāng)把一組匯編語句嵌入到C語言源程序中,則需要利用大括號把嵌入程序給括起來:在本次的實驗之中,在進行程序嵌入時,有其固定的格式,需要在嵌入的各行代碼之前加“asm”關(guān)鍵字,也可以直接在asm代碼塊中放入?yún)R編語句。但是程序設(shè)計者在進行嵌入時,一定要注意滿足以下條件:匯編語言指令代碼中關(guān)鍵字asm必不可少,且要放在指令代碼之前;嵌入?yún)R編語言指令代碼能夠和正常C語言程序混合,但是C語言的分隔符“;”必不可少;嵌入?yún)R編語言時C語言的注釋分界符必不可少,分別是“/*”和“*/” 。
②首先編寫C語言程序以及匯編程序,然后獨立編譯目標(biāo)代碼模塊,最終進行鏈接。
首先,在進行混合編程時,C語言程序能夠調(diào)用匯編語言的各種子程序以及其定義的變量,同時,C語言編寫的函數(shù)以及定義的變量等也可以被匯編語言調(diào)用。而且混合編程的過程中,一個任務(wù)往往是由若干個功能模塊組成,且不同的功能模塊均是利用合適的語言進行獨立編程,且以函數(shù)的形式存在。因此,程序設(shè)計者要根據(jù)每一模塊的特點選擇相應(yīng)的語言和語言編程系統(tǒng)進行獨立編程,并形成目標(biāo)文件,繼而連接目標(biāo)文件,形成完整的可執(zhí)行文件。在混合編程的過程中,設(shè)計者需要注意五個問題:參數(shù)傳遞問題;寄存器的使用問題;存儲模式;變量以及函數(shù)的調(diào)用問題;子程序的返回值問題。其中,關(guān)于參數(shù)傳遞問題,在進行C語言程序調(diào)用匯編程序時,必須遵從參數(shù)傳遞原則,利用堆棧把參數(shù)傳遞給匯編程序。例如,在C語言程序中含有函數(shù):voidaa(char*p,inti),這個函數(shù)是利用匯編語言進行編寫的,如果編譯是在小內(nèi)存模式下實施的,系統(tǒng)在進行調(diào)用時,則寫成aa(&q, n);運行時程序首先把n壓入堆棧,然后再把&q壓入堆棧,當(dāng)參數(shù)傳遞過來并被匯編語言的子程序取得時,BP寄存器便被用作基地址寄存器,實現(xiàn)對棧中所存數(shù)據(jù)進行存取操作。
(2)混合的軟件編程實例分析
程序的主要功能是在五個數(shù)中尋找最小數(shù),有主程序“min.c” 以及匯編子程序“qiumin.asm”這兩個部分組成。其中主程序是利用C語言編寫,匯編子程序是利用匯編語言編寫,被主程序調(diào)用,主要于完成尋找最小數(shù)。程序代碼如下:
/*文件名為:min.c*/
/*聲明qiumin為外部函數(shù)*/
利用C語言和匯編語言混合的編程方法,能夠?qū)崿F(xiàn)應(yīng)用程序局部滿足高運行速度的要求,但是在具體的運用之中,程序設(shè)計者仍需要注意寄存器分配以及內(nèi)存模式等因素對于程序的影響;且在運行時,因為程序設(shè)計語言之間存在相互調(diào)用的外部接口,故可以實現(xiàn)外部調(diào)用。
參考文獻
[1] 劉丹,劉德山.C語言程序設(shè)計課程綜合性和設(shè)計性實驗研究[J].計算機教育.2012(09).