官术网_书友最值得收藏!

6-1 再次Understand C

前面的章節(jié),對(duì)C的語法做了一個(gè)概述,同時(shí)也提出了學(xué)習(xí)和實(shí)踐的注意事項(xiàng)。下面讓我們來對(duì)C語言做一個(gè)總結(jié)。

對(duì)于程序設(shè)計(jì)語言來說,十余年來我的體驗(yàn)可真不少。從古老的FORTRAN,VAX環(huán)境開始,Pascal,Basic,dBase,匯編,Object Pascal,Delphi都有一定的體驗(yàn),甚至還嘗試過一點(diǎn)C#,Java。可謂涉獵廣泛。不過最鐘愛的還是C/C++。

從C語言開始,C++,Delphi,C#,這基本上是我的學(xué)習(xí)曲線。不過,最近我有所回歸,一方面是工作的需要——做嵌入式開發(fā),另一方面是基于對(duì)C語言的重新理解。

1.六大特性構(gòu)筑輝煌

究竟是什么讓我們?nèi)绱税V迷于C語言?為什么千千萬萬的程序員同時(shí)選擇了C語言?

我總結(jié)了以下6個(gè)原因:

(1)小而簡潔。

(2)高效率。

(3)足夠的算法描述能力。

(4)強(qiáng)可移植性。

(5)結(jié)構(gòu)化程序設(shè)計(jì)。

(6)信任程序員。

2.高級(jí)語言的最小子集

小而簡潔是每次有人問我C語言特點(diǎn)的時(shí)候,想起的第一個(gè)回答。任何一個(gè)語言都是人類邏輯和機(jī)器邏輯的體現(xiàn):機(jī)器邏輯只認(rèn)識(shí)二進(jìn)制的東西,不過還是可以簡單地分為兩類,代碼和數(shù)據(jù),代碼演變成各種運(yùn)算和if,while這些結(jié)構(gòu)控制,數(shù)據(jù)演變成int,char,float,然后引入數(shù)組和struct組成復(fù)雜數(shù)據(jù)。加上代碼和數(shù)據(jù)在內(nèi)存中都有對(duì)應(yīng)的地址,于是就有了指針的概念。結(jié)合結(jié)構(gòu)化程序設(shè)計(jì)便有了函數(shù)。

你可能會(huì)說,任何高級(jí)語言都有這些特性,可是你不知道,比如Pascal語言,函數(shù)就分為“procedure和function”兩種。而且有一個(gè)變量定義方式:var i:integer。即在函數(shù)中要改變函數(shù)外面的一個(gè)變量定義的值,看看C語言:int fun(int *i)即可,函數(shù)的定義和指針的定義一結(jié)合,就有一個(gè)新的特性。所以我說C語言是高級(jí)語言的最小子集。

C語言的額外功能基本上都是通過函數(shù)庫來提供,很多特性,我們以為是C語言的,實(shí)際上我們錯(cuò)了,那是ANSI C規(guī)定標(biāo)準(zhǔn)庫函數(shù)必須提供的。

3.一個(gè)非常“低級(jí)”的高級(jí)語言

C語言能操作硬件,這讓C語言在操作系統(tǒng)的開發(fā),嵌入式系統(tǒng)等底層相關(guān)開發(fā)方面魅力十足,長盛不衰。當(dāng)然,這也帶來了很多語言的天生缺陷和煩惱,比較難理解。

4.C =匯編++

道理同上,C語言雖然難學(xué),但比匯編好用,基本上程序效率和匯編一致,當(dāng)然是硬件相關(guān)開發(fā)的不二選擇。

5.不完美的C語言,完美的程序員

很多文獻(xiàn)說“信任程序員”是C語言設(shè)計(jì)時(shí)的一個(gè)基本原則,而我的幽默理解是C語言設(shè)計(jì)者最后說:我就能做這樣多,剩下的你們看著辦吧!

6.告別語言崇拜,專注問題解決

小的時(shí)候我非常喜歡數(shù)學(xué),喜歡它的原因我現(xiàn)在想想可能有兩點(diǎn)非常重要:一個(gè)是數(shù)學(xué)的美,另一個(gè)是解決數(shù)學(xué)問題需要的工具非常簡單,白紙和鉛筆。

后來我愛好程序設(shè)計(jì),可能也是這兩個(gè)原因的延續(xù):程序設(shè)計(jì)的美;簡單的工具:C和PC,它們能讓我很快能見到結(jié)果,這是人生智力延伸的最好體驗(yàn)。

因?yàn)橄矏郏杂行┓忾]。我也是大學(xué)宿舍里編程語言優(yōu)劣的爭(zhēng)論者——那個(gè)時(shí)候沒有網(wǎng)絡(luò),所以還只限于幾個(gè)同學(xué)之間的討論。

不過,世界在變化。畢竟我們也有了很多編程語言和開發(fā)工具的體驗(yàn),C/C++,特別是C語言,畢竟是手工編程時(shí)代的最好代表。C語言的設(shè)計(jì)原則,“信任程序員”,一定會(huì)被“給程序員最好的幫助,讓他們專注于解決問題”所取代。

主站蜘蛛池模板: 蓬安县| 清徐县| 若尔盖县| 白朗县| 金山区| 鹤峰县| 金沙县| 同心县| 理塘县| 徐州市| 泰和县| 绥芬河市| 日喀则市| 津市市| 惠安县| 台安县| 沧州市| 观塘区| 凤翔县| 桂阳县| 凉城县| 梓潼县| 宜丰县| 楚雄市| 宿松县| 台安县| 齐河县| 香港 | 绥江县| 淳化县| 林甸县| 随州市| 旅游| 广丰县| 罗山县| 墨江| 北京市| 烟台市| 太仓市| 景宁| 九龙城区|