學好C語言有什么好處
發布時間:2021-11-20 10:25:32

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