国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

C語言編程及調(diào)試技巧研究

2018-11-15 23:48:40朱敬涵
科技傳播 2018年21期
關(guān)鍵詞:編程技巧研究

朱敬涵

摘 要 隨著計(jì)算機(jī)技術(shù)、人工智能及物聯(lián)網(wǎng)的飛速發(fā)展,各種編程語言層出不窮,如Java、Python、C#、PHP、JavaScript和Ruby語言等。由于C語言功能強(qiáng)大、可移植性強(qiáng),因此盡管出現(xiàn)了很多功能強(qiáng)大的編程語言,但C語言從來沒有被拋棄過,且一直深受大眾青睞,應(yīng)用非常廣泛。文章首先簡單介紹了C語言的概念,闡述了C語言的優(yōu)勢,然后探討了C語言的編程技巧,最后提出了C語言的調(diào)試技巧。

關(guān)鍵詞 C語言;編程;技巧;研究

中圖分類號 TP3 文獻(xiàn)標(biāo)識碼 A 文章編號 1674-6708(2018)222-0080-02

雖然在C語言之后產(chǎn)生了大量的編程語言,然而大多語言都沒有實(shí)現(xiàn)自舉,僅有為數(shù)不多的編程語言實(shí)現(xiàn)了自舉,如C語言和Go語言等,而且Go語言早期版本也是用C語言開發(fā)的。目前,很多資料表明,有非常多的編程語言都是基于C語言開發(fā)的,因此,適時(shí)進(jìn)行C語言編程技巧研究具有一定的現(xiàn)實(shí)意義。

1 C語言概述

所謂C語言,是指誕生于20世紀(jì)70年代的一種計(jì)算機(jī)編程語言,相對匯編語言來說屬于一種高級語言,是一種可以用來進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì)的面向過程的編程語言。由于C語言是目前世界上最流行的編程語言之一,而且是一種較為基礎(chǔ)的編程語言,因此目前很多高校計(jì)算機(jī)相關(guān)專業(yè)都開設(shè)“C語言程序設(shè)計(jì)”課程,同時(shí)也有非常多的非計(jì)算機(jī)專業(yè)的編程愛好者自學(xué)C語言。由于C語言不僅擁有高級語言的特點(diǎn),還發(fā)揚(yáng)了匯編語言的一些特征,因此無論開發(fā)臺式電腦軟件,還是開發(fā)單片機(jī)及嵌入式程序,使用C語言都能輕松應(yīng)對。

2 C語言的優(yōu)勢

1)語法眾多。C語言的語法規(guī)則較多,包括運(yùn)算符、關(guān)鍵字及指針等語法規(guī)則,例如程序都是從main函數(shù)開始,一行可以包含多條語句,也可以將一個(gè)語句寫成多行,語句必須以分號結(jié)尾。

2)高效靈活。雖然C語言語法規(guī)則較多,但其語法限制不是十分嚴(yán)格,程序書寫較為自由,除了具有高級語言的特點(diǎn),又同時(shí)具有低級語言的實(shí)用性,能夠像匯編語言一樣直接訪問計(jì)算機(jī)硬件,因此能夠高效靈活的運(yùn)行。

3)表達(dá)力強(qiáng)。C語言的表達(dá)能力非常強(qiáng),主要體現(xiàn)為以下幾個(gè)方面:第一,C語言具有多種運(yùn)算符,多達(dá)44種。第二,C語言可以采用多種方式表達(dá)問題的解決方案。第三,C語言的部分?jǐn)?shù)據(jù)類型可以通用,例如整型和邏輯型數(shù)據(jù)。

4)高移植性。C語言的可移植性非常高,采用C語言編寫的程序可以在不同的機(jī)器上進(jìn)行編譯及運(yùn)行。在某一計(jì)算機(jī)上編寫的C語言程序,往往不加修改或稍加修改就可以在其他計(jì)算機(jī)上運(yùn)行。

5)數(shù)據(jù)類型豐富。C語言的數(shù)據(jù)類型非常豐富,具體包括以下幾類:第一,基本類型,C語言的基本類型主要包括數(shù)值型和字符型,其中數(shù)值型又包括整型和浮點(diǎn)型。第二,構(gòu)造類型,C語言的構(gòu)造類型主要包括數(shù)組、結(jié)構(gòu)體、共用體和枚舉類型等。第三,指針類型,C語言的指針類型非常重要,其應(yīng)用非常廣泛。第四,空類型。

6)結(jié)構(gòu)性強(qiáng)。C語言結(jié)構(gòu)性強(qiáng),具體表現(xiàn)為以下幾個(gè)方面:第一,C語言是結(jié)構(gòu)式語言,能有效分隔代碼和數(shù)據(jù)。第二,C語言可以使得語句層次結(jié)構(gòu)更清晰。第三,C語言還能通過多種循環(huán)及條件語句控制程序邏輯,使得程序的各部分相對獨(dú)立。

7)完善的內(nèi)存儲器。C語言具有強(qiáng)大的內(nèi)存訪問功能,允許程序直接讀寫物理存儲空間,還可以直接對硬件進(jìn)行訪問,可以用來編寫系統(tǒng)軟件。

8)應(yīng)用廣泛。C語言不僅具有高級語言的易懂特性,還能像匯編語言那樣直接訪問硬件,而且可移植性非常高,因此一直以來被廣泛應(yīng)用到各個(gè)領(lǐng)域,例如PC操作系統(tǒng)、智能手機(jī)系統(tǒng)、嵌入式系統(tǒng)、工業(yè)設(shè)備和交通工具等。

9)功能豐富。由于C語言是圖靈完備的語言,能夠自舉,不僅適用于高級程序設(shè)計(jì),也適用于底層編程,因此理論上可以完成任何功能。

3 C語言的編程技巧

3.1 適當(dāng)犧牲存儲空間來提高程序的執(zhí)行效率

在C語言實(shí)際應(yīng)用過程中,可以采用犧牲存儲空間的方式換取較高的執(zhí)行效率,具體表現(xiàn)為以下幾點(diǎn):第一,在相同的存儲空間情況下,采用指針一般可以提高程序的執(zhí)行效率。第二,為了實(shí)現(xiàn)同樣的程序功能,可以多預(yù)存一些變量,雖然存儲空間增加了,但效率也提高了。第三,采用宏函數(shù)替換函數(shù)來提高效率,由于宏函數(shù)在編譯時(shí)直接替換為源代碼,跳過了函數(shù)調(diào)用,比函數(shù)調(diào)用少了入棧出棧操作,因此宏函數(shù)的執(zhí)行效率要比函數(shù)高,只是宏函數(shù)比函數(shù)占用的存儲空間更大一些。

3.2 采用巧妙的計(jì)算方法來提高程序的執(zhí)行效率

在利用C語言進(jìn)行計(jì)算的時(shí)候,采用巧妙的計(jì)算方法通??梢蕴岣叱绦虻膱?zhí)行效率,例如要計(jì)算“1+2+……+100”的和,采用常規(guī)的方法一般是采用循環(huán)累加的方法,循環(huán)100次才能得到結(jié)果5050,而采用巧妙的計(jì)算方法,可以將“1+2+……+100”的和,轉(zhuǎn)換為“1+100+2+99+3+98……+50+51”的和,顯而易見算式為101乘以50即可,結(jié)果為5050,只要一步即可得出結(jié)果,不需要循環(huán),比常規(guī)方法節(jié)省了百倍的時(shí)間,可見采用巧妙的計(jì)算方法能夠有效地提高程序的執(zhí)行效率。

3.3 采用位操作代替除法及模運(yùn)算來提高程序的執(zhí)行效率

在C語言程序中,位是可以處理的最小數(shù)據(jù)單位,通常用在直接與硬件打交道的程序中,也可能用在數(shù)據(jù)轉(zhuǎn)換的情況下,理論上能夠利用位操作替換較為耗時(shí)的除法和求余運(yùn)算,不過位運(yùn)算會因CPU的不同而出現(xiàn)結(jié)果不同的情況。因此,當(dāng)C語言編制的程序總是運(yùn)行在CPU字長一樣的機(jī)器上時(shí),可以采用位運(yùn)算代替除法及模運(yùn)算來提高程序的執(zhí)行效率。

3.4 嵌入式程序設(shè)計(jì)中的C語言編程技巧

在采用C語言進(jìn)行的嵌入式程序開發(fā)過程中,其編程技巧與臺式計(jì)算機(jī)不同,具體表現(xiàn)為以下幾個(gè)方面:第一,采用指針函數(shù)的指針提高嵌入式C語言程序的執(zhí)行效率,即將指針指向所要調(diào)用的函數(shù)入口,然后利用指向函數(shù)入口的指針來調(diào)用函數(shù),以此簡化代碼,提高效率。第二,直接操作寄存器來提高效率,由于每個(gè)寄存器都有固定的地址,因此可以通過C語言訪問這些地址來操作寄存器,提高程序的執(zhí)行效率。第三,在嵌入式程序設(shè)計(jì)時(shí),可以利用C語言直接進(jìn)行寄存器位運(yùn)算來提高程序的執(zhí)行效率。第四,在利用C語言開發(fā)嵌入式程序時(shí),涉及循環(huán)語句時(shí)盡量用“i--”替換“i++”,能夠提高程序的執(zhí)行效率,尤其在循環(huán)次數(shù)較多的情況下效率提高更多。

3.5 C語言三種循環(huán)編程技巧

可以通過一個(gè)簡單實(shí)例深入了解C語言三種循環(huán)的用法,先從

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)

{10以內(nèi)整數(shù)求和;}

為例,熟悉for語句的用法,將for語句中表達(dá)式1和表達(dá)式3省略,將常用形式轉(zhuǎn)變?yōu)槿缦滦问剑?/p>

表達(dá)式1;

for(;表達(dá)式2;)

{10以內(nèi)整數(shù)整數(shù)求和;

表達(dá)式3;}

此形式可以與while語言等價(jià),將以上形式變成while語句:

表達(dá)式1;

while(表達(dá)式2)

{10以內(nèi)整數(shù)整數(shù)求和;

表達(dá)式3;}

同一個(gè)例子,套用do-while語句,通過運(yùn)行結(jié)果,查看三個(gè)語句的區(qū)別和聯(lián)系。在練習(xí)過程中,尋找相關(guān)的知識點(diǎn),循序漸進(jìn),最終達(dá)到游刃有余使用C語言編程的目的。例如,在此例中進(jìn)行擴(kuò)展,求100以內(nèi)整數(shù)和,求100以內(nèi)偶數(shù)和,求100以內(nèi)奇數(shù)和等,相關(guān)聯(lián)的例子可以將枯燥的知識變得趣味十足。

4 C語言的調(diào)試技巧

較大的C語言程序調(diào)試起來還是比較麻煩的,程序員們通常采用調(diào)試器來進(jìn)行調(diào)試,但有時(shí)被編譯器自動優(yōu)化的代碼可能會讓調(diào)試器不知所措。其實(shí)有個(gè)既簡單又實(shí)用的調(diào)試方法,那就是在程序運(yùn)行過程中利用“printf”函數(shù)輸出程序運(yùn)行的中間結(jié)果,這樣無論編譯器如何對源代碼進(jìn)行優(yōu)化,都不會影響利用“printf”函數(shù)來進(jìn)行調(diào)試。該方法一般被稱為“輸出大法”,能夠在C語言程序運(yùn)行過程中輸出顯示各種程序員所要顯示的中間結(jié)果,簡單直觀,相對于調(diào)試器來說更容易跟蹤C(jī)語言程序的執(zhí)行情況,能夠很好地提高調(diào)試程序的效率。

5 結(jié)論

文章介紹了C語言的概念,闡述了C語言的優(yōu)勢,歸納了C語言的編程技巧,探尋了C語言的調(diào)試技巧。經(jīng)過一段時(shí)間的C語言編程實(shí)踐表明,文章總結(jié)的關(guān)于C語言的編程及調(diào)試技巧,能夠很好地提升使用C語言進(jìn)行程序設(shè)計(jì)及調(diào)試的效率,幫助編程人員迅速完成工程項(xiàng)目,具有一定的推廣價(jià)值。

參考文獻(xiàn)

[1]賈慶文.計(jì)算機(jī)C語言編輯程序技巧及應(yīng)用[J].山東工業(yè)技術(shù),2018(11):135.

[2]王蕊.計(jì)算機(jī)軟件C語言的編程實(shí)驗(yàn)研究[J].無線互聯(lián)科技,2018,15(10):104-105.

[3]劉子嘉.C語言開發(fā)應(yīng)用程序口令字實(shí)現(xiàn)思路和算法[J].電腦編程技巧與維護(hù),2018(5):50-52.

[4]劉衛(wèi)東,曾紹杰,袁夢,等.淺析單片機(jī)C語言(C51)與C語言的關(guān)系[J].河北農(nóng)機(jī),2018(5):42.

[5]葛婭敬,趙禮峰.基于C語言的計(jì)算機(jī)編程技術(shù)探討[J].信息與電腦(理論版),2018(7):45-46.

[6]鄧廣彪,覃賢立.提高C語言編程能力的幾點(diǎn)策略[J].電腦知識與技術(shù),2016(12):60-61.

猜你喜歡
編程技巧研究
我家有只編程貓
我家有只編程貓
我家有只編程貓
我家有只編程貓
FMS與YBT相關(guān)性的實(shí)證研究
肉兔短期增肥有技巧
遼代千人邑研究述論
開好家長會的幾點(diǎn)技巧
甘肅教育(2020年12期)2020-04-13 06:24:46
視錯(cuò)覺在平面設(shè)計(jì)中的應(yīng)用與研究
科技傳播(2019年22期)2020-01-14 03:06:54
EMA伺服控制系統(tǒng)研究
保山市| 屏南县| 景洪市| 彭山县| 江永县| 友谊县| 定日县| 南宁市| 车险| 阳谷县| 海原县| 五河县| 金堂县| 寿阳县| 霞浦县| 尼勒克县| 绍兴县| 大化| 通榆县| 耒阳市| 马边| 石渠县| 金阳县| 灵山县| 漯河市| 磴口县| 车险| 昭苏县| 昌乐县| 蒙城县| 双辽市| 易门县| 鹤峰县| 民勤县| 梁山县| 塘沽区| 江津市| 乌苏市| 台北县| 都安| 宜川县|