朱敬涵
摘 要 隨著計算機技術、人工智能及物聯(lián)網的飛速發(fā)展,各種編程語言層出不窮,如Java、Python、C#、PHP、JavaScript和Ruby語言等。由于C語言功能強大、可移植性強,因此盡管出現(xiàn)了很多功能強大的編程語言,但C語言從來沒有被拋棄過,且一直深受大眾青睞,應用非常廣泛。文章首先簡單介紹了C語言的概念,闡述了C語言的優(yōu)勢,然后探討了C語言的編程技巧,最后提出了C語言的調試技巧。
關鍵詞 C語言;編程;技巧;研究
中圖分類號 TP3 文獻標識碼 A 文章編號 1674-6708(2018)222-0080-02
雖然在C語言之后產生了大量的編程語言,然而大多語言都沒有實現(xiàn)自舉,僅有為數不多的編程語言實現(xiàn)了自舉,如C語言和Go語言等,而且Go語言早期版本也是用C語言開發(fā)的。目前,很多資料表明,有非常多的編程語言都是基于C語言開發(fā)的,因此,適時進行C語言編程技巧研究具有一定的現(xiàn)實意義。
1 C語言概述
所謂C語言,是指誕生于20世紀70年代的一種計算機編程語言,相對匯編語言來說屬于一種高級語言,是一種可以用來進行結構化程序設計的面向過程的編程語言。由于C語言是目前世界上最流行的編程語言之一,而且是一種較為基礎的編程語言,因此目前很多高校計算機相關專業(yè)都開設“C語言程序設計”課程,同時也有非常多的非計算機專業(yè)的編程愛好者自學C語言。由于C語言不僅擁有高級語言的特點,還發(fā)揚了匯編語言的一些特征,因此無論開發(fā)臺式電腦軟件,還是開發(fā)單片機及嵌入式程序,使用C語言都能輕松應對。
2 C語言的優(yōu)勢
1)語法眾多。C語言的語法規(guī)則較多,包括運算符、關鍵字及指針等語法規(guī)則,例如程序都是從main函數開始,一行可以包含多條語句,也可以將一個語句寫成多行,語句必須以分號結尾。
2)高效靈活。雖然C語言語法規(guī)則較多,但其語法限制不是十分嚴格,程序書寫較為自由,除了具有高級語言的特點,又同時具有低級語言的實用性,能夠像匯編語言一樣直接訪問計算機硬件,因此能夠高效靈活的運行。
3)表達力強。C語言的表達能力非常強,主要體現(xiàn)為以下幾個方面:第一,C語言具有多種運算符,多達44種。第二,C語言可以采用多種方式表達問題的解決方案。第三,C語言的部分數據類型可以通用,例如整型和邏輯型數據。
4)高移植性。C語言的可移植性非常高,采用C語言編寫的程序可以在不同的機器上進行編譯及運行。在某一計算機上編寫的C語言程序,往往不加修改或稍加修改就可以在其他計算機上運行。
5)數據類型豐富。C語言的數據類型非常豐富,具體包括以下幾類:第一,基本類型,C語言的基本類型主要包括數值型和字符型,其中數值型又包括整型和浮點型。第二,構造類型,C語言的構造類型主要包括數組、結構體、共用體和枚舉類型等。第三,指針類型,C語言的指針類型非常重要,其應用非常廣泛。第四,空類型。
6)結構性強。C語言結構性強,具體表現(xiàn)為以下幾個方面:第一,C語言是結構式語言,能有效分隔代碼和數據。第二,C語言可以使得語句層次結構更清晰。第三,C語言還能通過多種循環(huán)及條件語句控制程序邏輯,使得程序的各部分相對獨立。
7)完善的內存儲器。C語言具有強大的內存訪問功能,允許程序直接讀寫物理存儲空間,還可以直接對硬件進行訪問,可以用來編寫系統(tǒng)軟件。
8)應用廣泛。C語言不僅具有高級語言的易懂特性,還能像匯編語言那樣直接訪問硬件,而且可移植性非常高,因此一直以來被廣泛應用到各個領域,例如PC操作系統(tǒng)、智能手機系統(tǒng)、嵌入式系統(tǒng)、工業(yè)設備和交通工具等。
9)功能豐富。由于C語言是圖靈完備的語言,能夠自舉,不僅適用于高級程序設計,也適用于底層編程,因此理論上可以完成任何功能。
3 C語言的編程技巧
3.1 適當犧牲存儲空間來提高程序的執(zhí)行效率
在C語言實際應用過程中,可以采用犧牲存儲空間的方式換取較高的執(zhí)行效率,具體表現(xiàn)為以下幾點:第一,在相同的存儲空間情況下,采用指針一般可以提高程序的執(zhí)行效率。第二,為了實現(xiàn)同樣的程序功能,可以多預存一些變量,雖然存儲空間增加了,但效率也提高了。第三,采用宏函數替換函數來提高效率,由于宏函數在編譯時直接替換為源代碼,跳過了函數調用,比函數調用少了入棧出棧操作,因此宏函數的執(zhí)行效率要比函數高,只是宏函數比函數占用的存儲空間更大一些。
3.2 采用巧妙的計算方法來提高程序的執(zhí)行效率
在利用C語言進行計算的時候,采用巧妙的計算方法通??梢蕴岣叱绦虻膱?zhí)行效率,例如要計算“1+2+……+100”的和,采用常規(guī)的方法一般是采用循環(huán)累加的方法,循環(huán)100次才能得到結果5050,而采用巧妙的計算方法,可以將“1+2+……+100”的和,轉換為“1+100+2+99+3+98……+50+51”的和,顯而易見算式為101乘以50即可,結果為5050,只要一步即可得出結果,不需要循環(huán),比常規(guī)方法節(jié)省了百倍的時間,可見采用巧妙的計算方法能夠有效地提高程序的執(zhí)行效率。
3.3 采用位操作代替除法及模運算來提高程序的執(zhí)行效率
在C語言程序中,位是可以處理的最小數據單位,通常用在直接與硬件打交道的程序中,也可能用在數據轉換的情況下,理論上能夠利用位操作替換較為耗時的除法和求余運算,不過位運算會因CPU的不同而出現(xiàn)結果不同的情況。因此,當C語言編制的程序總是運行在CPU字長一樣的機器上時,可以采用位運算代替除法及模運算來提高程序的執(zhí)行效率。
3.4 嵌入式程序設計中的C語言編程技巧
在采用C語言進行的嵌入式程序開發(fā)過程中,其編程技巧與臺式計算機不同,具體表現(xiàn)為以下幾個方面:第一,采用指針函數的指針提高嵌入式C語言程序的執(zhí)行效率,即將指針指向所要調用的函數入口,然后利用指向函數入口的指針來調用函數,以此簡化代碼,提高效率。第二,直接操作寄存器來提高效率,由于每個寄存器都有固定的地址,因此可以通過C語言訪問這些地址來操作寄存器,提高程序的執(zhí)行效率。第三,在嵌入式程序設計時,可以利用C語言直接進行寄存器位運算來提高程序的執(zhí)行效率。第四,在利用C語言開發(fā)嵌入式程序時,涉及循環(huán)語句時盡量用“i--”替換“i++”,能夠提高程序的執(zhí)行效率,尤其在循環(huán)次數較多的情況下效率提高更多。
3.5 C語言三種循環(huán)編程技巧
可以通過一個簡單實例深入了解C語言三種循環(huán)的用法,先從
for(表達式1;表達式2;表達式3)
{10以內整數求和;}
為例,熟悉for語句的用法,將for語句中表達式1和表達式3省略,將常用形式轉變?yōu)槿缦滦问剑?/p>
表達式1;
for(;表達式2;)
{10以內整數整數求和;
表達式3;}
此形式可以與while語言等價,將以上形式變成while語句:
表達式1;
while(表達式2)
{10以內整數整數求和;
表達式3;}
同一個例子,套用do-while語句,通過運行結果,查看三個語句的區(qū)別和聯(lián)系。在練習過程中,尋找相關的知識點,循序漸進,最終達到游刃有余使用C語言編程的目的。例如,在此例中進行擴展,求100以內整數和,求100以內偶數和,求100以內奇數和等,相關聯(lián)的例子可以將枯燥的知識變得趣味十足。
4 C語言的調試技巧
較大的C語言程序調試起來還是比較麻煩的,程序員們通常采用調試器來進行調試,但有時被編譯器自動優(yōu)化的代碼可能會讓調試器不知所措。其實有個既簡單又實用的調試方法,那就是在程序運行過程中利用“printf”函數輸出程序運行的中間結果,這樣無論編譯器如何對源代碼進行優(yōu)化,都不會影響利用“printf”函數來進行調試。該方法一般被稱為“輸出大法”,能夠在C語言程序運行過程中輸出顯示各種程序員所要顯示的中間結果,簡單直觀,相對于調試器來說更容易跟蹤C語言程序的執(zhí)行情況,能夠很好地提高調試程序的效率。
5 結論
文章介紹了C語言的概念,闡述了C語言的優(yōu)勢,歸納了C語言的編程技巧,探尋了C語言的調試技巧。經過一段時間的C語言編程實踐表明,文章總結的關于C語言的編程及調試技巧,能夠很好地提升使用C語言進行程序設計及調試的效率,幫助編程人員迅速完成工程項目,具有一定的推廣價值。
參考文獻
[1]賈慶文.計算機C語言編輯程序技巧及應用[J].山東工業(yè)技術,2018(11):135.
[2]王蕊.計算機軟件C語言的編程實驗研究[J].無線互聯(lián)科技,2018,15(10):104-105.
[3]劉子嘉.C語言開發(fā)應用程序口令字實現(xiàn)思路和算法[J].電腦編程技巧與維護,2018(5):50-52.
[4]劉衛(wèi)東,曾紹杰,袁夢,等.淺析單片機C語言(C51)與C語言的關系[J].河北農機,2018(5):42.
[5]葛婭敬,趙禮峰.基于C語言的計算機編程技術探討[J].信息與電腦(理論版),2018(7):45-46.
[6]鄧廣彪,覃賢立.提高C語言編程能力的幾點策略[J].電腦知識與技術,2016(12):60-61.