现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢?
?
C/C++會(huì)不會(huì)被時(shí)代淘汰?這個(gè)問(wèn)題跳過(guò)了一步,關(guān)鍵是這個(gè)問(wèn)題:
C/C++有哪些其它語(yǔ)言難以代替的特殊之處?
1、對(duì)實(shí)現(xiàn)細(xì)節(jié)的控制粒度
一般我們常說(shuō):C/C++具有較高的執(zhí)行效率。其實(shí)這句話(huà)不是特別準(zhǔn)確,有時(shí)候它們并不一定效率高。換句更恰當(dāng)?shù)脑?huà)說(shuō):
C/C++,特別是C語(yǔ)言,控制粒度很細(xì),與機(jī)器語(yǔ)言有著相當(dāng)穩(wěn)固的對(duì)應(yīng)關(guān)系。
?
如果大家對(duì)C/C++感興趣的話(huà),可以加一下我們的學(xué)習(xí)交流Q群:637 ?935 ?295,免費(fèi)領(lǐng)取一套學(xué)習(xí)資料和視頻課程喲~
也就是說(shuō),高手可以通過(guò)C語(yǔ)言寫(xiě)出完全按照自己的想法運(yùn)行的程序。從C代碼可以直接對(duì)應(yīng)到匯編語(yǔ)言,如果你對(duì)C語(yǔ)言有足夠的了解,代碼在運(yùn)行時(shí)實(shí)際做了哪些事情,是相當(dāng)明確的。
C/C++甚至能指導(dǎo)編譯器哪些變量?jī)?yōu)先放在寄存器,哪些函數(shù)內(nèi)聯(lián),哪些變量要避免多線程搶奪,均可以進(jìn)行非常細(xì)致的控制。
與此相反,Java、Python等高級(jí)語(yǔ)言在執(zhí)行時(shí)會(huì)跨越很多層次。高級(jí)語(yǔ)言源代碼 ->中間語(yǔ)言 -> 虛擬機(jī)執(zhí)行 -> 分解執(zhí)行流程 -> 實(shí)際執(zhí)行的一系列操作。這其中的每一步都不是那么簡(jiǎn)單,最普通的一句代碼:
c = a+b
會(huì)因?yàn)閍或b的元方法,產(chǎn)生無(wú)數(shù)的執(zhí)行可能性。除非仔細(xì)分析每一個(gè)細(xì)節(jié),否則編程者對(duì)于最終代碼的執(zhí)行邏輯是缺乏控制力的,也不可能進(jìn)行匯編級(jí)別的優(yōu)化。
總結(jié)來(lái)說(shuō),C/C++,特別是C語(yǔ)言,有著極為精細(xì)的控制粒度,而更高級(jí)的現(xiàn)代語(yǔ)言一般無(wú)法進(jìn)行如此細(xì)致的控制。
2、由于極高的控制力,在某些領(lǐng)域難以被代替
需要程序員壓榨每一分硬件性能的地方并不多,特別是現(xiàn)在的服務(wù)器核心數(shù)很多,只要能充分利用多核心,每個(gè)核心沒(méi)有完全挖掘也是可以接受的。
一般來(lái)說(shuō),需要壓榨硬件潛力的領(lǐng)域有:
1、操作系統(tǒng)。因?yàn)槊總€(gè)人每天都要用操作系統(tǒng),操作系統(tǒng)(特別是內(nèi)核和驅(qū)動(dòng)層),對(duì)優(yōu)化要求非常高。例如如果對(duì)Windows磁盤(pán)讀取優(yōu)化1%,幾乎全世界電腦用戶(hù)都會(huì)受益1%。
2、游戲引擎。游戲是硬件進(jìn)步的原動(dòng)力,大型游戲開(kāi)發(fā)商總是在盡力壓榨每一分硬件性能,在60幀以上無(wú)止境優(yōu)化視覺(jué)效果、動(dòng)態(tài)效果。C++一直以來(lái)都是編寫(xiě)游戲引擎的首選語(yǔ)言,而且?guī)缀跏俏ㄒ徽Z(yǔ)言。(游戲開(kāi)發(fā)可以用各種技術(shù),但引擎本身一般是用C++編寫(xiě))
3、嵌入式程序。由于單片機(jī)的硬件性能較弱,存儲(chǔ)空間極小,必須編寫(xiě)專(zhuān)用的程序代碼,使用高級(jí)語(yǔ)言可能導(dǎo)致延遲過(guò)大,或容量超出限制。未來(lái)“萬(wàn)物互聯(lián)”的潮流,可能會(huì)引發(fā)超微型嵌入式系統(tǒng)的再度復(fù)興。
4、加密與安全方向。大部分加密/解密模塊,與操作系統(tǒng)一樣,每個(gè)人每天都會(huì)頻繁使用,所以用C/C++來(lái)深入優(yōu)化是必須的;另外,很多軟件硬件漏洞,例如常見(jiàn)的內(nèi)存溢出漏洞,也需要編寫(xiě)很精巧的C/C++代碼才好利用漏洞,才能編寫(xiě)木馬或者直接入侵系統(tǒng)。
?
總之,C/C++的不可替代性是由它本身的特點(diǎn)決定的。而且目前來(lái)看,這種不可替代性在未來(lái)幾年、幾十年也依然不會(huì)有變化。
總結(jié)
以上是生活随笔為你收集整理的现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 安顺计算机二级考试,安顺市2020年3月
- 下一篇: s3c2440移植MQTT