| 頭文件 | 核心功能 |
<stdio.h> | 文件 I/O (fopen/fclose/fread/fwrite/fprintf/fscanf/fgets)、標準流、格式化輸入輸出 |
<stdlib.h> | 動態內存 (malloc/free/realloc/calloc/aligned_alloc)、程序控制 (exit/atexit/abort)、轉換 (strtol/strtod)、隨機數 (rand/srand)、搜索排序 (qsort/bsearch) |
<string.h> | 內存/字符串操作 (memcpy/memmove/memset/memcmp/strlen/strcpy/strcat/strcmp/strchr/strstr) |
<math.h> | 數學函數 (sin/cos/tan/sqrt/pow/log/exp/fabs/fmod/ceil/floor)、浮點環境 (fenv.h) |
<time.h> | 時間日期 (time/clock/difftime/strftime/gmtime/localtime)、高精度計時 |
<stdint.h>, <stddef.h>, <stdbool.h> | 定寬類型、size_t/ptrdiff_t/NULL/offsetof、布爾類型 |
<assert.h>, <setjmp.h>, <signal.h> | 斷言、非局部跳轉、信號處理 |
<errno.h> | 錯誤碼標準化 |
第五層:進階主題 (專精方向)
- 動態內存管理策略:內存池、引用計數、RAII 模擬、碎片整理。
- 文件系統操作:POSIX
open/read/write/lseek/stat、Windows API、跨平台封裝。
- 位運算技巧:掩碼、標志位、位掃描、無分支編程、Hacker's Delight 算法。
- 多線程:C11
<threads.h>、POSIX pthread、Windows Thread、鎖、條件變量、原子操作 (<stdatomic.h>)。
- 網絡編程:Socket API (BSD/POSIX/Windows)、TCP/UDP、I/O 多路復用 (select/poll/epoll/IOCP)、應用層協議。
- 編譯鏈接原理:預處理→編譯→匯編→鏈接、符號解析、重定位、靜態/動態庫、ELF/PE 格式。
- 調試與分析:GDB/LLDB、Valgrind (Memcheck/Helgrind/Callgrind)、AddressSanitizer、perf、火焰圖。
- 標準演進:C89/C99/C11/C17/C23 新特性 (泛型選擇、對齊、原子、線程本地存儲、屬性語法、
typeof 等)。
學習建議
- 按層序推進,上層不牢下層亂。
- 每個知識點**手寫代碼驗證**,閱讀標準庫源碼 (glibc/musl/msvcrt)。
- 建立「錯誤筆記本」,記錄 UB、陷阱、編譯器警告案例。
- 完成 3-5 個不同領域的完整項目 (CLI 工具、網絡服務、嵌入式固件、數據處理、編譯器前端)。
這份清單即是大綱,亦是檢查表。逐項打勾,C 語言功力自成體系。
- 上一篇文章: C語言聯合體 union 詳解:共享內存、類型懲罰、协议解析實戰
- 下一篇文章: C語言考試經典程序閱讀題精解:while、宏、do-while、switch 陷阱
Copyright ©
程式碼之家 All Rights Reserved