溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

從語言層次的角度看為什么要精通C語言

發(fā)布時間:2020-07-14 04:58:42 來源:網(wǎng)絡(luò) 閱讀:327 作者:ningcaichen66 欄目:編程語言

談到C語言,很多人的第一反應(yīng)就是定義變量、if...else...等這些細(xì)節(jié)語法,然而更應(yīng)該時刻不能忘記的就是它在編程世界中的位置。前者那些是語法細(xì)節(jié),后者是更需要一種宏觀認(rèn)識,才能對它理解的越來越深刻。為什么有句話說“十年都不敢說精通C語言”是有一定的道理的。所以,這里從宏觀上來看待C語言。

編程語言一開始是由0101這些機(jī)器碼編程開始的,那時候的編程的確是一種只有高智商的人方可做的工作,因?yàn)槟愕帽痴b一堆堆的指令,如:ADD指令假設(shè)為10011100,這你得記住!所以,這樣的編程要麻煩的多,也不利于普及,人數(shù)力量有限,就不能把功能做的太強(qiáng)大。

所以前輩們根據(jù)社會需求改進(jìn)了,提供了最初的翻譯器:匯編。這樣人們不再需要寫機(jī)器指令如:10011100,而只要寫ADD,通過匯編工具就可以把ADD轉(zhuǎn)換成機(jī)器碼,從而簡化了編程,這是最初的為人而做的編程語言:匯編語言。然而這種語言還不能解決一個事情,那就是你寫的指令是由機(jī)器CPU的指令系統(tǒng)決定的,言下之意,不同的CPU指令系統(tǒng)就決定了你寫的指令是不一樣的。也就是移植性的問題,這個不是匯編語言產(chǎn)生的,而是本來就有的,匯編只是還沒解決。

移植性的問題不解決,那么同樣的軟件在不同的平臺就得又要重新寫一套,甚是麻煩。

所以更上層的編程語言就應(yīng)該出現(xiàn)了,這就是C語言。它解決了CPU指令系統(tǒng)的跨平臺,但是越來越多的對硬件的操作,都被封裝為各種各樣的驅(qū)動,由操作系統(tǒng)來承載,所以現(xiàn)在的跨平臺不但是要CPU指令系統(tǒng)的跨平臺,還要包含操作系統(tǒng)的跨平臺。這樣就要繼續(xù)產(chǎn)生更高級的跨平臺,如:java。java是通過弄出中間字節(jié)碼的方式(而不是最終的二進(jìn)制的方式)來實(shí)現(xiàn)更完美的跨平臺。

雖然是功能上解決了,但是犧牲的卻是代碼質(zhì)量。兼容性越好,需要考慮的異常就會越多,容錯性也就要做的更好,代碼則會更多,這樣又對編譯器的功能要求越來越強(qiáng)大,功能強(qiáng)大則意味著性能會降低,就像整體的效率是由串聯(lián)電路上的多個關(guān)鍵環(huán)節(jié)共同決定,最差的那個環(huán)節(jié)決定了整體的效率。因此越是上層的編程語言,性能勢必越低下。表現(xiàn)為:功能強(qiáng)大的東西需要底層語言來開發(fā)。所以游戲行業(yè)的引擎是不宜用PHP和JAVA來開發(fā)的,都是用C/C++來開發(fā)...否則就會卡到死...同理,安裝軟件和APP中很卡的軟件,就是因?yàn)橛蒙蠈诱Z言來開發(fā)而導(dǎo)致了無法解決的性能問題。

所以,不管是人們追求的火熱行業(yè):嵌入式,移動互聯(lián)網(wǎng),物聯(lián)網(wǎng),云計(jì)算,大數(shù)據(jù),這些的性能要好,就得是C/C++去支撐。更多技術(shù)行業(yè),水到深處,就是落實(shí)到C/C++了。

如:×××的航行速度8000米/秒。試想你的程序如果有0.1秒的誤差,那么你將會誤差800米,這就不是指哪打哪,而是指東打西了,打的牛頭不對馬嘴。

差之毫厘謬以千里,這句話在編程效率和性能領(lǐng)域內(nèi)比比皆是。

現(xiàn)在追求的是速度,速度,還是速度?。?!

1:性能對比參考:

效率最高的是機(jī)器語言。其性能大概是匯編語言2倍;而匯編語言又是C語言2倍;而C語言又是C++的1.5倍;C語言是JAVA的5倍;

如果從速度上來看:機(jī)器語言執(zhí)行1秒,匯編語言要2秒完成,C語言要4秒完成,C++要6秒,JAVA要20秒完成,黃花菜估計(jì)都涼了。

語言越高級,速度越慢;

2:語言的層次發(fā)展匯總:

圖示:

從語言層次的角度看為什么要精通C語言

3:C語言地位...

C語言的核心地位從這里可以看到,它是其他語言如:C++以及更高級語言的基礎(chǔ)語言。C語言學(xué)不好,C++難精通,C/C++學(xué)不好,JAVA難精通,PHP同樣難精通,JS同樣難精通,數(shù)據(jù)結(jié)構(gòu)和算法的必學(xué)基礎(chǔ)課...linux操作系統(tǒng)難把握。這些都是連貫到一起的,就像應(yīng)聘PHP高薪的職位,別人不是考你PHP的語法,而是問你linux操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu),Nosql這些去了。

C語言是有史以來最為重要的編程語言,要進(jìn)入編程行業(yè)高手級別必學(xué)C語言,當(dāng)然要掙大錢必須要精通C語言。它是所有大學(xué)理工科必學(xué)的科目,也是未來科技中的核心編程語言。是幾乎所有名企、外企、高薪編程職位的面試比考內(nèi)容。做***、紅客也必須掌握的編程語言。

所以,才是:學(xué)好C/C++,走遍全球都不怕?,F(xiàn)在趕緊惡補(bǔ)C語言...,不論你現(xiàn)在是做.NET,還是JAVA,還是PHP,還是JS...《C語言,好爽》2017,就是為它而生的!


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI