日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

扯淡!C语言怎么可能被淘汰呢?

發布時間:2023/12/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 扯淡!C语言怎么可能被淘汰呢? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“大魚機器人”,選擇“置頂/星標公眾號”

福利干貨,第一時間送達

我想通過這篇短文向你展示C偉大的一面。

作者 | Jakub Lukasiewicz,已獲作者翻譯授權

譯者 | 彎月,責編 | 張文

出品 | CSDN(ID:CSDNnews)

以下為譯文:

“第一門編程語言學C靠譜嗎?”

“C還有未來嗎?”

“我應該考慮學C嗎?”

“C太老了吧!”

你是否也聽過類似的話語?

聽說過無數次,有些是面對面的交談,而有些來自某個論壇。

雖然答案無非是“取決于具體情況”,但以我的拙見,學習C編程是非常寶貴的經驗。

我想通過這篇短文向你展示C偉大的一面。

01

C的精神

首先,我想引用文檔C99RationaleV5.10中的一句話:

C89委員會始終將保留C的傳統精神作為主要目標。C的精神體現在很多方面,但其本質在于社區對C語言所依賴的基本原則的看法。C的精神可以總結為以下幾個方面:

  • 相信程序員。

  • 不阻礙程序員完成任務所需的工作。

  • 保持語言短小精悍。

  • 僅提供一種操作的方法。

  • 保持高速,即使無法保證可移植性。

下面,我將進一步討論上述幾點。

02

中級編程語言

編程語言可以大致分為兩個級別:低級和高級。

低級語言靠近硬件,比低級語言更接近 CPU 的就只有電流了。這些語言又分為為機器碼和匯編兩種。前者是原始數據流,通常是二進制數據。為了便于人類使用,通常我們以“可讀”的十六進制形式進行處理。

第二代語言匯編在機器碼之上提供了一層抽象。這些語言大部分是人類可讀的符號(包括符號地址)、操作碼、地址、數字常量、字符串等的映射。而且每個處理器各有不同。

相較而言,高級語言提供了哪些抽象?根據維基百科:

與低級編程語言相比,高級語言使用了自然語言元素,更易于使用,而且還可以自動化(甚至完全隱藏)計算機系統中的重要領域(例如內存管理),從而簡化程序的開發過程,而且也比低級語言更易于理解。編程語言提供的抽象數量決定了其“高級”程度。?

簡而言之:低級語言=更加靠近機器,高級語言=更加人性化。

C 是高級編程語言,但在 C 剛剛創建的時候,大多數功能仍然是通過低級的匯編完成的。因此,與其他廣泛使用的語言相比,C 擁有更底層的抽象級別,因此我喜歡將其稱為“中級編程語言”。

你可以輕松地將 C 代碼編譯成匯編(而不是二進制代碼),并檢查 CPU 執行的指令,在這個過程中C語言不會加入太多語言特有的代碼。

此外,如果有需要,流行的 C 編譯器還提供了更低級的選項,允許你使用內聯匯編完全掌控 CPU。縱觀編程領域,能夠做到這一步的編程語言可謂少之又少。

03

簡 潔

低級語言的編程難度很高。不是因為這些語言過于復雜,而是因為這類編程很容易出錯,因此需要投入更多精力、記憶和心思。

C 是中級編程語言,因此“根據定義” C 語言編程更加容易。但令人驚訝的是,與高級語言相比,C 語言的學習非常簡單。為什么?因為 C 語言的語法非常簡單,還有結構化的范例。循環、函數、結構、指針、變量、類型等核心基礎知識的學習都非常容易。大約只需一周的努力學習即可入門。剩下的就是數學和計算機科學理論了。

但是,不要誤會我的意思!如果想完全掌握 C 語言,你需要付出大量的努力!事實上,學習任何東西都需要付出大量的努力!

04

快速、輕量級

與其他語言(例如 Java )相比,標準 C 庫很小,所以你完全可以記住所有的功能。雖然有些功能應該在很久以前就棄用了,但是 C 語言的性能仍然非常出色。

如果連 libc 都覺得太大怎么辦?即便你完全不用 libc 也沒有關系。只要不包含括任何頭文件即可,甚至連簡單的 printf() 都不使用。你可以將其替換成其他庫。

C 語言非常成熟,重視對內存的管理,擁有內聯匯編、少量抽象,且語言沒有過度膨脹,因此程序員能夠很好地控制程序。

因此,C 語言成為了 OS 內核(Linux、Windows NT 或 macOS 的 XNU 等)以及其他語言(例如 Python)的理想選擇。這也是為什么 C 在嵌入式系統上如此受歡迎的原因,因為嵌入式系統不允許浪費任何資源。

05

無所不在=可移植性

你能否想到任何沒有 C 編譯器的重大平臺?除了有些只運行匯編的平臺,我從未聽說過沒有 C 編譯器的平臺。高端游戲 PC、NASA 航天器、售票機等各種平臺都使用了 C 編程。真的是無所不在,C 軟件遍布全世界。

如上所述,對于圍繞在我們日常生活中的微控制器和其他形式的嵌入式系統來說,C 語言是主流選擇。

你聽說過FFI嗎?事實證明,許多編程語言都可與 C 兼容。

你不必擔心是否可在某些工作中使用 C 語言,99%的情況下你都可以使用 C!(盡管這并不意味著你應該在所有工作中都使用 C……)。盡管 C 語言的代碼并非100%可移植,但你可以成為可移植的程序員。

06

影響力

C 語言直接或間接地影響了無數語言,比如 C++、Java、Go、D、Rust、Perl,甚至是 PHP 和 Python。

顯然,學習這些語言的時候,你并不需要 C 的知識,有時甚至還不能使用C的最佳實踐。

然而,我認為記住編程語言的根源很重要。而且,如果你熟悉 C,那么就會有一些優勢,尤其是 C++ 的學習。

07

豐富的庫

我懷疑以上對于 C 語言的快速、輕量級、中級編程語言、匯編等方面的討論,可能會給你一個錯誤的想法:你需要實現所有的功能。雖然 C 確實沒有 Java中的 LinkedHashMap 或其他功能(如垃圾收集器),但 C 語言也不至于那么落后。

C 是一種成熟的流行語言。無論你需要何種功能,相信都能找到相應的庫(雖然有些功能太晦澀不容易表達,因此不太好找,但我相信這些庫一定存在)。

你需要垃圾收集器?那么可以試試 Boehm GC。你需要 TUI?那么 ncurses是不二的選擇。還有很多很多庫,我無法一一列舉:GTK、PDCurses、libcurl、ALSA、Genann、libsoundio、SDL、SQLite、getopt、OpenGL、inih、GMP、cJSON、MuPDF、OpenSSL...

C 是一種非常通用的語言,基本上可以編寫任何東西:Web服務器、視頻游戲(例如來自 id-Software 的經典游戲,https://github.com/id-Software)、操作系統、其他編程語言或強制 Firefox 遵守 XDG 基本目錄規范的包裝程序,因為如果我是管理員的話,這些程序會嚴格執行我下達的命令!

然而,請不要忘記,即便你可以用 C 編寫所有軟件,也并不意味著你應該這樣做。例如,如果你想創建一個視頻游戲,則應該將目光轉向 C++。

08

C++高度向后兼容

為什么我會在這里引出 C++?因為 C++ 是當今使用最廣泛的語言之一,而且相信你也經常遇到它。

與其他兼容 C 的編程語言相反,C++ 是 C 的直接后代,而且 C++ 委員會竭盡全力保持與 C 的兼容性(達到復制粘貼即可使用的程度),在大多數情況下,你可以把 C 當成 C++ 一樣編譯。

但請不要誤會,C++ 絕對不是 C 的超集,C 代碼不可以與 C++ 一起使用,而且好的 C 代碼不一定是好的 C++ 代碼。舉個例子:

int* x = malloc(10 * sizeof(*x));

這在 C 語言中是正確的方法,但是在 C++ 中,malloc() 之前應該有 (int*),這樣才能正常工作,而且你應該使用 new int[10]。

盡管在大多數情況下,你可以在 C++ 項目中安全地使用 C 庫。

前面列舉的 C 庫不僅可以使用,而且人們經常以這種方式使用。例如,我自己在編寫十六進制編輯器Bym的時候就在 C++ 代碼中使用了 ncurses。

在 extern "C" 鏈接說明符的助力下,就連使用 C 編譯器編譯的庫也可以與C++ 兼容。

09

美中不足

C 語言是在B語言的基礎上于1972年創建的,因此多年來,C 吸收了一些古怪的東西(字符串標題中定義的 memcpy()!),有些功能已過時,有些已被棄用,C 保留了這些功能只是為了與舊代碼兼容。

初學者很可能需要花費大量的時間來追查由于內存損壞而引發的奇怪行為,結果只弄得一頭霧水,極大地打擊程序員的信心。C 中幾乎沒有機制可以阻止程序員搬起石頭砸自己的腳。

此外,我們需要了解學習 C 不是計算機科學的入門。任何一門編程語言都不是計算機科學入門。你需要經過正規的學習才能對這片廣闊領域有真正的了解。即便無法接受大學的正規教育,也可以通過在線教育進行學習。

10

總 結

學習 C 是寶貴的經驗,非常值得。即便不作為第一門語言,也應該作為第二、第三或第四門編程語言進行學習。C 有很多優點,但也有一些缺點。至少學習C 編程沒有任何損失。所以,請給自己一個機會,嘗試一下,也許你會像我一樣愛上它。

最后,不要親信“ C 已經完了”、“很快 C 就會被淘汰了”之類的傳言。C 活得好好的,而且在接下來的幾十年中也將繼續發光發熱。別忘了,就連 COBOL 至今仍有空缺職位!

C 怎么可能會被淘汰?就在我寫下這些話的時候,C 計劃的新標準版本(C2x)的預覽版已于上個月發布!

原文:https://blog.joren.ga/programming/best-of-c

本文為 CSDN 翻譯,轉載請注明來源出處。

-END-

|?整理文章為傳播相關技術,版權歸原作者所有?|

|?如有侵權,請聯系刪除?|

往期好文合集

C語言指針,這可能是史上最干最全的講解啦(附代碼)!!!

神奇!C語言還可以這樣用來仿真

這是我的C語言入門筆記。

??最 后??

?

若覺得文章不錯,轉發分享,也是我們繼續更新的動力。

5T資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、單片機、等等

在公眾號內回復「更多資源」,即可免費獲取,期待你的關注~

總結

以上是生活随笔為你收集整理的扯淡!C语言怎么可能被淘汰呢?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久久片 | 波多野结衣视频一区二区 | 丰满肉肉bbwwbbww | 手机在线看片你懂的 | 午夜免费福利视频 | 91精品人妻一区二区 | 国产视频一二三 | av天堂一区二区三区 | 日本xx视频免费观看 | 中文字幕av在线免费观看 | 嫩草影院懂你的 | 久久三级 | 性生活av| 龚玥菲一级淫片 | 热久久免费 | 丰满人妻一区二区三区精品高清 | 在线激情小视频 | 巨乳美女被爆操 | 午夜资源网 | 97在线免费观看视频 | 久久久久亚洲av片无码下载蜜桃 | 欧美理伦片在线播放 | 天堂网av在线播放 | 成人精品自拍 | 美女免费视频网站 | 美女脱光衣服让男人捅 | 精品人伦一区二区三区蜜桃网站 | 欧美日韩久久久久久 | 国产草草浮力影院 | 国产网站无遮挡 | 日韩有码电影 | 精品国产伦一区二区三区免费 | 91av中文字幕| 久久国产精品久久久久久电车 | 草色噜噜噜av在线观看香蕉 | 国产精品自拍一区 | 国产综合区 | 亚洲男人天堂电影 | 麻豆av一区二区三区久久 | a黄色大片 | 亚洲天堂网在线观看视频 | 久久精品9 | 波多野结衣一区二区三区在线观看 | 18av视频 | javxxx| av大片在线免费观看 | 久久久久女教师免费一区 | 永久毛片 | 极品美妇后花庭翘臀娇吟小说 | 美女光屁股视频 | 国产精品激情偷乱一区二区∴ | 亚洲小视频网站 | 久久久青青 | 91福利一区 | 影音先锋亚洲精品 | 免费人成网 | 这里只有精品国产 | 亚洲精品高清在线 | 国产精品美女久久久久av爽 | 强行挺进白丝老师翘臀网站 | 亚洲欧洲激情 | 天天躁夜夜躁狠狠躁 | 日韩美女一区 | 91一区视频| 亚洲国产综合一区 | 亚洲gay视频 | 欧美 日韩 国产 成人 在线 91 | 国产精品午夜在线 | 国产麻豆一精品一男同 | 精品国产无码一区二区三区 | 国产精品theporn动漫 | 一个人在线免费观看www | 99久久久无码国产精品不卡 | 97久久久久久久久久 | 密臀av在线 | av在线免费观看网站 | xxxwww在线观看 | 欧美一区视频在线 | 国产精品高潮视频 | 亚洲熟女综合色一区二区三区 | 国产精品久久 | 国产成人精品视频在线观看 | wwwxxx日本免费| 蜜桃传媒一区二区亚洲av | 亚洲日本精品一区 | 女女互慰揉小黄文 | 巨胸挤奶视频www网站 | 中文字幕免费高清在线观看 | 一区二区三区四区高清视频 | 激情小视频 | 爱综合网 | a√天堂资源 | 中文字幕区 | 一级作爱视频 | 欧美成人三级在线观看 | 26uuu精品一区二区在线观看 | 美梦视频大全在线观看高清 | 欧美色欧美色 | 国产八区|