大家好,我是良許,一個深耕嵌入式 12 年的老工程師,前世界 500 強高工。
我花了 3 個月時間,寫了一個 C 語言電子書,以非常通俗的語言跟大家講解 C 語言,把複雜的技術講得連小學生都能聽得懂,絕不是 AI 生成那種晦澀難懂的電子垃圾。
點擊此處免費領取 C 語言電子書
C 語言電子書目錄如下:
《The C Programming Language》的影響
1978年,丹尼斯·裏奇和布萊恩·科尼漢(Brian Kernighan)合著的《The C Programming Language》出版了。這本書不僅僅是一本編程教材,更像是C語言的"憲法"。書中第一頁的那個著名的"Hello, World!"程序成為了無數程序員學習編程的第一步。這本書的出版標誌着C語言開始走向世界,從貝爾實驗室的內部工具變成了全球程序員的共同語言。
這個時期的C語言通常被稱為"K&R C",它確立了C語言的基本語法和特性。雖然當時還沒有正式的標準,但這本書實際上成為了C語言的事實標準。全世界的程序員都通過這本書學習C語言,各種C編譯器也都以這本書作為實現的參考。
<img src="https://lxlinux.superbed.verylink.top/item/6841587958cb8da5c82f869e.png" style="zoom:50%;" />
ANSI C標準的制定(C89/C90)
隨着C語言的廣泛使用,不同廠商開發的C編譯器之間出現了兼容性問題。每個編譯器都有自己的擴展和特性,這給程序的移植帶來了困擾。為了解決這個問題,美國國家標準協會(ANSI)在1983年成立了一個委員會,負責制定C語言的正式標準。
經過6年的努力,1989年ANSI正式發佈了C語言標準,即ANSI X3.159-1989標準,通常簡稱為C89或ANSI C。1990年,國際標準化組織(ISO)也採納了這個標準,發佈了ISO/IEC 9899:1990,因此這個標準也被稱為C90。
C89/C90標準的制定具有重大意義,它不僅統一了C語言的語法和語義,還增加了許多新特性,比如const關鍵字、volatile關鍵字、函數原型聲明等。這個標準確保了C程序在不同平台和編譯器之間的可移植性,為C語言的進一步推廣奠定了基礎。
C99標準的創新
進入90年代後,計算機技術飛速發展,程序員們對編程語言提出了更高的要求。1999年,ISO發佈了新的C語言標準C99(ISO/IEC 9899:1999),這是C語言歷史上最重要的一次更新。
C99引入了許多現代編程語言的特性,比如:
- 可變長數組(VLA):允許在運行時確定數組大小
- 內聯函數:提高程序執行效率
- 複數類型:支持複數運算
- 可變參數宏:讓宏定義更加靈活
- 單行註釋:支持//風格的註釋
- 混合聲明和代碼:變量可以在任何地方聲明
這些新特性讓C語言更加現代化,同時保持了其簡潔高效的特點。
C11標準的進一步完善
2011年,ISO發佈了C11標準(ISO/IEC 9899:2011),這是C語言的最新正式標準。C11主要關注併發編程和安全性,引入了一些重要特性:
- 多線程支持:原生支持多線程編程
- 原子操作:提供了線程安全的數據操作
- 靜態斷言:編譯時檢查
- 匿名結構體和聯合體:簡化數據結構的定義
- 改進的Unicode支持
C18標準的技術更正
2018年,ISO發佈了C18標準(ISO/IEC 9899:2018),這主要是對C11的技術更正,沒有引入新的特性,但修復了一些標準中的錯誤和不一致之處。