為什麼說 C 語言是系統級程式設計的首選?

時間 2021-05-05 23:07:32

1樓:打醬油的瘋子

基本上都沒有說到點子上。

C語言基本上就是彙編的直譯,不能更簡單了。

整個C就是指標和位址,然後是數值運算,別無其他。

唯一隱藏的就是暫存器分配。

再多一點就是提供了彙編沒有的型別驗證保護,而這個也是可以去掉的,C語言真的不能再多了。

再多說一句話,就是基本上彙編能做的C能做9.5成,最後0.5成用函式封裝彙編給出。

別的語言能做8成就很不錯了,很多人會說C++,我只想說C++很煩,擴充套件了功能人家也不願意用吧。

2樓:品雪

系統級程式設計說得比較泛,直接寫作業系統的機會應該比較少,給作業系統寫驅動、外掛程式這類事情更多一些,統稱系統元件吧。另外,給有或者沒有作業系統的硬體寫系統也比較常見。

程式語言核心是要提供足夠的能力描述演算法邏輯,同時提供演算法執行的必然需要用到的記憶體進行對映的型別系統和管理機制。

前面這點圖靈完備的語言都可以搞定,有許多語言的表達能力遠比 C 強,但 C 已經足夠用了。C 語言有 GOTO,這個現代語言基本都不支援,這玩意濫用有害,善用很爽,處理異常情況不需要引入心智負擔和執行時負擔太重的異常機制。

後面這點是 C 威力大的地方, C 的型別系統是對不同位元組數記憶體的直接對映,想用必須搞清楚,也容易搞清楚,系統程式設計一大半時間都在折騰記憶體,一般對記憶體耗用量非常敏感,所以用 C 會覺得很爽。

C 是乙個特別小的語言,沒有太多語言內建的基礎設施,I/O甚至堆記憶體管理全靠庫,而這個庫在不同環境完全可以隨便換,語言本身對不同平台支援沒有設定障礙,標準庫小也方便移植。在開源的 GCC/LLVM 基礎上打造乙個工具鏈會容易一些。

所以一直有個說法,C 偉大之處在於,它作為高階語言提供了對機器的最小抽象。

3樓:golden時代

我只回答和c相關的,

因為 Dennis M. Ritchie同時發明了unix和c,並用c重寫了unix, unix實在是太成功,以至於後面的作業系統都在它影響之下,使用c作為開發語言,

因為和最底層作業系統打交道,最直接的,當然是使用c,我不喜歡說什麼是歷史的必然,只是c足夠好,歷史選擇了c,

4樓:李力

《黑客與畫家》裡說過:C語言是作業系統的指令碼語言

其它的大多語言是其對應虛擬機制的指令碼語言,若要做系統程式設計,當然選擇為這個作業系統本身預設的指令碼語言了

5樓:陳良喬

其一,所有系統幾乎都是用C語言開發的,說家鄉話自然要比說那些時髦的Python之類的來的親切

其二,是由系統程式設計的要求決定的,效能,是他的首要要求,在所有語言當中,C的效能恐怕是第一的了吧。當然,彙編的效能比他更高,但是太複雜繁瑣,得不償失。所以只有選擇C語言。

程式設計小白乙個,請問如何系統的學習程式設計,c語言和Python哪個更好

Leon 建議先學習c語言 因為很多語言都是從c語言吸取開發的,可以毫不誇張的說,學好c語言學習其他語言會輕鬆很多,python的語言基礎比起c簡化很多,但是基本想通。都說c語言是開啟程式設計世界的大門 學習族 推薦Python,首先你可以不用在一開始就被各種資料型別和奇葩的報錯困擾,甚至乙個標準讀...

用的最多的程式語言為什麼是C語言,甚至前幾名都和C相關 C C ,而最早的高階語言Fortran都排不上TOP10

木色 Fortran並不是乙個通用程式語言,只集中在科學計算裡 當然現在也用的不多 而C則是通用的程式語言,它是對彙編的一種抽象,而這種抽象恰到好處取得了功能性與便利性的平衡! 梁少聰 C可是計算機語言界的 聖母 好麼。至於Fortran,上面vczh也說了,早期連遞迴都沒有,後來才慢慢改好的。用里...

為什麼說指標是 C 語言的精髓?

悽臨雨 指標 型別 虛擬記憶體位址值 整數 指標運算 根據型別確定的寬度對位址值進行修改。其中c語言裡的型別,比c 裡的型別的功能弱的多,所以你覺得c的精髓是指標,在c 裡就是個基礎操作,沒什麼大不了的。因為c語言的語言功能太貧瘠,所以只能靠記憶體位址的修改來做事,沒它就寸步難行。 Howard J...