熊碧霞,余 嵐,田 爽
(中船重工集團公司第七二二研究所,湖北 武漢 430079)
基于C語言軟件開發(fā)的效率、移植及調(diào)試研究
熊碧霞,余 嵐,田 爽
(中船重工集團公司第七二二研究所,湖北 武漢 430079)
近些年來,科學(xué)技術(shù)飛速的發(fā)展,同時帶動著通信技術(shù)的快速前進,人們對計算機技術(shù)的需求也緊隨著快速增長,計算機應(yīng)用是當(dāng)代人不可缺少的因素?,F(xiàn)如今,社會中普遍使用的計算機的編程語言,如MATLAB,C++和python等,這些計算機語言無論是在學(xué)者們的研究還是具體的應(yīng)用中,都顯得至關(guān)重要。文章以C語言及其軟件開發(fā)的相關(guān)內(nèi)容展開簡要的探討,簡單介紹了基于C語言軟件開發(fā)的效率、移植及調(diào)試,表達出C語言軟件應(yīng)用的高效性和重要性。
C語言;軟件開發(fā);計算機應(yīng)用
計算機的編程語言越來越多的為人們所用,是從事相關(guān)工作人員的必備工具,硬件是計算機實現(xiàn)其各種功能的基礎(chǔ),而軟件則是它的內(nèi)在核心,掌握一門編程語言是完成一項計算機研究至關(guān)重要的條件,因此,軟件被稱為網(wǎng)絡(luò)信息時代的一種新的設(shè)施。C語言是近年來應(yīng)用較廣的一種現(xiàn)代編譯型語言,對于一個專業(yè)的編程工作人員,精通C語言是基礎(chǔ),它的精確性是其被廣泛應(yīng)用的基礎(chǔ),相對其他語言而言,32個關(guān)鍵字是容易掌握的,可以控制硬件,應(yīng)用也比較方便。
早期的C語言主要是應(yīng)用于Unix系統(tǒng),由于它的強大功能和各方面的優(yōu)點逐漸為人們認識。后來,C語言慢慢進入其他操作系統(tǒng),得到廣泛應(yīng)用。它用來提供一種能以建議的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持就可以運行的編程語言,在信息領(lǐng)域內(nèi),目前受到了普遍的應(yīng)用。如此看來,這種語言也算是有著長久的發(fā)展歷史,才得以被人們接受。
C語言與以往的機器語言相比,優(yōu)點很多,機器語言雖然問世早,但繁瑣、不直觀,也不易調(diào)試,比如計算y=2x+3需要幾條指令,移植性差,太過依賴于計算機。而匯編語言,雖然直觀,但也繁瑣。
對于一個簡單的程序設(shè)計,一般包含確定數(shù)據(jù)結(jié)構(gòu)、確定算法、編碼、在計算機上調(diào)試程序等幾個部分,而其中的編碼和調(diào)試部分利用C語言的開發(fā)就可以完成的。而C語言的代碼是由0和1構(gòu)成的二進制指令或者數(shù)據(jù),是一種高級的面向機器的計算機語言,它是一種結(jié)構(gòu)化程序設(shè)計語言,它的語言結(jié)構(gòu)簡單,沒有子程序的定義,由32個關(guān)鍵字,C語言中的函數(shù)可以便捷地完成子程序的功能。它可以模塊化的對函數(shù)進行編譯,另外,C語言還提供了比較多的數(shù)據(jù)類型,這些數(shù)據(jù)類型也極大地提高了程序的高效性。
C語言語法結(jié)構(gòu)相對于其他語言,使用更加方便、靈活,功能豐富,數(shù)據(jù)類型、實現(xiàn)方式都相對不那么復(fù)雜,不僅可以實現(xiàn)高級語言的作用,而且可以發(fā)揮低級語言的作用,被廣泛地應(yīng)用到軟件的編寫中。在程序的編寫過程中,它對設(shè)計者的編程能力也不那么嚴(yán)格,語法錯誤有限,變量的類型比較靈活,設(shè)計語言的自由度比較大。而且,C語言編寫出來的程序其兼容性比較大,無需做太多的改動,便可應(yīng)用到其他的軟件中,這也就是所謂的“可移植性”強。
另外,C語言有很多其他的優(yōu)點,如具有豐富的數(shù)據(jù)類型(占據(jù)字節(jié)數(shù)不等的整型、實型、字符型等),語法限制不太嚴(yán)格、程序設(shè)計自由度大、允許直接訪問物理地址、可進行位操作、實現(xiàn)匯編語言的大部分功能等,這些優(yōu)點共同推動它成為全球廣泛應(yīng)用的一種高級計算機語言。
2.1 C語言程序的編譯
一般來講,計算機語言編寫出來的程序包括源程序、目標(biāo)程序等,源程序就是指高級語言編寫的程序,這是計算機不能夠直接接受的,所以需要通過軟件作一些轉(zhuǎn)化,而目標(biāo)程序則是指二進制代碼表示的程序,它可以被計算機接受,源程序就是通過特定的軟件把那些規(guī)則的編程語言語句轉(zhuǎn)換成二進制的機器指令,這就是所謂的編譯程序。因此,每一種高級語言都是有與它對應(yīng)的編譯程序。
C語言中,也不可避免地存在著C源程序、目標(biāo)文件,只不過有它專用的名詞來表示,C語言的各種語句,也是通過編譯,作出如此的轉(zhuǎn)化,成為二進制的指令。經(jīng)編譯后,它的目標(biāo)文件被表示為.OBJ文件,是一個二進制的文件,然后由特定的軟件把.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.EXE的可執(zhí)行文件。在操作系統(tǒng)中,運行這個文件就可以了。以上,就是C語言程序的具體編譯過程。
2.2 C語言軟件開發(fā)的效率
眾所周知,計算機語言的普遍具有的特點就是可以極大程度地提高運行的速率,減少運算的量,用極少而又簡單的程序代碼表達較復(fù)雜的算法并且一定程度上減少數(shù)據(jù)的存儲。無論是在數(shù)據(jù)的存儲類型還是程序軟件的結(jié)構(gòu),都是本著簡單高效的原則工作的。
C語言的數(shù)據(jù)有多種類型,在對其進行處理時,要先存放在內(nèi)存中,不同類型的數(shù)據(jù)在存儲器中的存放格式也不相同,不同類型的數(shù)據(jù)所占內(nèi)存長度不同,數(shù)據(jù)表達形式也不同,其值域也不相同,但是,C語言中規(guī)定,任何數(shù)據(jù)都必須有明確的數(shù)據(jù)類型,這樣對數(shù)據(jù)進行仔細地劃分后,可以使得C語言的運行簡化、高效。
C語言程序軟件采用模塊化的結(jié)構(gòu),當(dāng)計算機在處理較為復(fù)雜的任務(wù)時,所寫出的程序常常是由上萬條語句組成,需要完成很龐大的任務(wù)量。因此,C語言會把這個復(fù)雜的任務(wù)分解成一個個子任務(wù),每個子任務(wù)再繼續(xù)進行分解,直到每個子任務(wù)只完成一項簡單的功能,然后在進行程序設(shè)計時,每個模塊去實現(xiàn)這些較小的功能,每個程序設(shè)計人員分別完成一個或多個小模塊。由此看來,把一個完整的繁瑣的程序分解成為若干個子程序,每個子程序由有限的代碼實現(xiàn),這樣,一方面減輕了程序設(shè)計人員的負擔(dān),也使得程序邏輯清晰簡單化,只需要對程序之間的數(shù)據(jù)傳遞作出統(tǒng)一規(guī)范,同一軟件可由一組人員同時進行編寫,分別進行調(diào)試,這就大大提高了C語言軟件的效率。
2.3 C語言軟件開發(fā)的移植
與匯編語言相比,C語言程序的可移植性可以很大程度地增加程序的可用性,所謂的“可移植性”,并不是指所寫的程序不作任何的修改就可以在任何計算機上運行,通俗地講,它是指當(dāng)條件有變化時,程序無需作太多的修改就可以運行,但是仍然存在著需要修改的部分。在不同的平臺上運行時,改動的代碼是一部分,也就是指分模塊編程,把不會變的代碼寫到一起,基本上不作修改就可以用于各種型號的計算機和各種操作系統(tǒng)。比如,C語言是C++的基礎(chǔ),兩者在很多方面都是兼容的。C程序都是由函數(shù)構(gòu)成,而函數(shù)由主函數(shù)和函數(shù)體組成,如下程序:
這個程序在C語言中的運行結(jié)果是“Hello,word!”,而在其他的一些軟件中的運行結(jié)果也是同樣的。
2.4 C語言軟件開發(fā)的調(diào)試
編程語言在編譯和運行的時候,可能會出現(xiàn)錯誤或者警告,而錯誤主要是包括語法和邏輯錯誤,在編譯的時候,語法錯誤可以檢測出來,而邏輯錯誤是編譯界面無法直接檢測出來的,就要通過調(diào)試來解決問題。所謂“調(diào)試”,是指程序沒有顯示語法錯誤。調(diào)試的時候,程序員應(yīng)該先進行靜態(tài)的檢查,也就是有效的人工檢查,盡可能在程序上多加注釋,之后再上機調(diào)試,也就是動態(tài)檢查,編譯時發(fā)現(xiàn)錯誤時,可以找出并改正,然后程序員就可以連接并執(zhí)行目標(biāo)程序,然后運行,如此反復(fù)地調(diào)試即可。比如對于上述的程序,如果在軟件中編譯發(fā)現(xiàn)錯誤,就需要針對錯誤的地方進行更改。
近年來,由于C++的出現(xiàn),進一步增加了C語言面向?qū)ο蟮某绦蛟O(shè)計功能,使得C語言已經(jīng)成為最流行的一種計算機程序設(shè)計語言。無論是從算法、編程、調(diào)試還是其他各個方面,C語言軟件的開發(fā)都展現(xiàn)出了極大的優(yōu)異性,相關(guān)人員應(yīng)該學(xué)會在繼承它的各種優(yōu)點的同時,開發(fā)出更具競爭力的計算機的高級語言,滿足人們的需求,從而推動社會的進步。
[1]周鳴爭.C語言程序設(shè)計教程[M].成都:電子科技大學(xué)出版社,2005.
[2]田淑清.全國計算機等級考試二級教程[M].北京:高等教育出版社,2011.
[3]楊學(xué)兵.C語言程序設(shè)計[M].合肥:中國科學(xué)技術(shù)大學(xué)出版社,2004.
Research on efficiency,transplant and debugging of software development based on C language
Xiong Bixia,Yu Lan,Tian Shuang
(722nd Research Institute of China Shipbuilding Industry Corporation,Wuhan 430079,China)
With the application of computer in China for further popularization and development,people have been deeply aware of the importance of computer knowledge of contemporary human culture,computer application is an indispensable factor in contemporary society.Nowadays,the society widely uses computer high-level language such as visual,basic,C++,Java and C language.These computer languages,whether in the study of scholars or in the specific application,are very important.The article launched a brief discussion about the related content of C language and its software development,simply introducing the efficiency,transplantation and debugging of the software development based on C language,and expressing the high efficiency and the importance of the application of C language software.
C language;software development;application of computer
熊碧霞(1979—),女,湖北武漢,碩士,工程師;研究方向:無線通信。