培訓無憂網(wǎng)合作機構(gòu) > 學校機構(gòu) > 長沙牛耳教育歡迎您!
學好C語言有什么好處
發(fā)布時間:2021-11-20 10:25:32

C需要被替換掉的觀點爭辯是簡單的。編程語言研究和軟件開發(fā)實踐都暗示了如何比C更好地去做事。但歷經(jīng)數(shù)十年的研究和開發(fā),C語言的地位卻依舊穩(wěn)固。很少有其他語言能夠在性能、裸機兼容性或通用性等方面擊敗它。不過,2018年C是如何與那些明星編程語言競爭的呢,其中細節(jié)仍值得一看。
選C而不選C++對您——以及任何將會維護你代碼的開發(fā)人員——來說都是可行的,通過采用強制簡約主義來避免與C ++的復雜性糾纏。當然,C ++擁有豐富的高級功能,這是有它自己的道理的。但如果極簡主義更適合當前和未來的項目——以及負責項目的團隊——那么還是選C更明智一些。
Java輸給C的地方是一個Java從未打算競爭的領(lǐng)域:靠近底層結(jié)構(gòu)運行,或直接與硬件打交道。C代碼被編譯成機器代碼,由進程直接執(zhí)行。Java被編譯成字節(jié)碼,這是一種隨后會被JVM解釋器轉(zhuǎn)換為機器代碼的中間代碼。此外,盡管Java的自動內(nèi)存管理在大多數(shù)情況下都是個優(yōu)點,但C更適合于必須充分利用有限內(nèi)存資源的情況。
也就是說,在某些方面,Java在速度方面可以接近于C。JVM的JIT引擎在運行時根據(jù)程序行為優(yōu)化例程,允許進行許多類型的優(yōu)化,而這些優(yōu)化是在未提前編譯的C中無法實現(xiàn)的。雖然Java運行時自動執(zhí)行內(nèi)存管理,但一些較新的應用程序可以解決這個問題。例如,Apache Spark部分地通過使用繞過JVM的自定義內(nèi)存管理代碼來優(yōu)化內(nèi)存中處理。
與C一樣,C#和.Net提供各種直接訪問內(nèi)存的機制。堆,棧和非托管系統(tǒng)內(nèi)存都可以通過.Net API和對象訪問。開發(fā)人員可以使用.Net中的unsafe模式來實現(xiàn)更高的性能。
但這些都不是沒有代價的。托管對象和unsafe對象不能被任意交換,并且它們之間的編組會降低性能。因此,要最大化.Net應用程序的性能需要將托管和非托管對象之間的變動保持在最低限度。
如果您無法承擔托管與非托管內(nèi)存之間變動造成的性能損失,或者.Net運行時對于目標環(huán)境(例如,內(nèi)核空間)來說是一個糟糕的選擇,或者可能根本不可用,那么C就是你所需要的。與C#和.Net不同,C被默認可以解鎖對內(nèi)存的訪問權(quán)。
本文由培訓無憂網(wǎng)長沙牛耳教育課程顧問老師整理發(fā)布,希望能夠?qū)ο朐陂L沙參加安卓軟件開發(fā)培訓的學生有所幫助。更多課程信息可關(guān)注培訓無憂網(wǎng)電腦IT培訓頻道或添加老師微信:15033336050
以上文章由長沙牛耳教育課程顧問整理編輯發(fā)布,部分文章來自網(wǎng)絡內(nèi)容真實性請自行核實或聯(lián)系我們,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費申請試課。關(guān)注官方微信了解更多:150 3333 6050