C 語言概覽:歷史、特性、優缺點與開發流程七步驟
歷史淵源
1972 年貝爾實驗室,Dennis Ritchie 與 Ken Thompson 為 UNIX 系統設計開發 C 語言。
核心特性
高效能
- 指標:直接操作記憶體,動態申請資源,時空開銷最小,能描述複雜資料結構。
- 參考:變數別名,本質為位址傳遞,效率同指標但語法更安全。
- 內聯函式:消除函式呼叫開銷,類似強化版巨集。
可移植性
同一程式經少量修改即可跨平台執行,通常只需調整標頭檔少數參數。
面向程式設計師
允許存取硬體、操作特定記憶體位元,語法寬鬆給予自由,但也意味著更高風險(易犯其他語言少見的錯誤)。
主要缺點
- 無邊界檢查,易發生記憶體衝突、懸空指標、資源洩漏。
- 無原生併發、模組、命名空間支援。
- 錯誤處理冗長;堆疊崩潰或惡意輸入易導致大量錯誤。
- 簡潔語法與豐富運算子結合,可能寫出難以維護的代碼。
C 與電腦運作原理
CPU 從記憶體取指令執行,工作區為暫存器,指令集有限(學習組合語言有助於逆向工程)。
理想化開發七步驟
- 定義目標:用一般概念思考,非具體語言。
- 設計程式:介面、架構、演算法、資料結構、時程。
- 編寫代碼:選語言、IDE、風格、註解(重視註解)。
- 編譯:編譯器轉換原始碼,連結器引入庫形成執行檔。
- 執行:IDE 點擊運行或命令列
./a.out。
- 測試除錯:結果不符時檢查代碼,Debug 也是門技術。
- 維護修改:修復 Bug、新增功能、改進優化。
實際開發非線性,需在步驟間往返,編碼前務必規劃。