部分 II. C語言本質

目錄

14. 計算機中數的表示
1. 為什麼計算機用二進制計數
2. 不同進制之間的換算
3. 整數的加減運算
3.1. Sign and Magnitude表示法
3.2. 1's Complement表示法
3.3. 2's Complement表示法
3.4. 有符號數和無符號數
4. 浮點數
15. 數據類型詳解
1. 整型
2. 浮點型
3. 類型轉換
3.1. Integer Promotion
3.2. Usual Arithmetic Conversion
3.3. 由賦值產生的類型轉換
3.4. 強制類型轉換
3.5. 編譯器如何處理類型轉換
16. 運算符詳解
1. 位運算
1.1. 按位與、或、異或、取反運算
1.2. 移位運算
1.3. 掩碼
1.4. 異或運算的一些特性
2. 其它運算符
2.1. 復合賦值運算符
2.2. 條件運算符
2.3. 逗號運算符
2.4. sizeof運算符與typedef類型聲明
3. Side Effect與Sequence Point
4. 運算符總結
17. 計算機體繫結構基礎
1. 內存與地址
2. CPU
3. 設備
4. MMU
5. Memory Hierarchy
18. x86彙編程序基礎
1. 最簡單的彙編程序
2. x86的寄存器
3. 第二個彙編程序
4. 定址方式
5. ELF檔案
5.1. 目標檔案
5.2. 執行檔
19. 彙編與C之間的關係
1. 函數調用
2. main函數和啟動常式
3. 變數的存儲佈局
4. 結構體和聯合體
5. C內聯彙編
6. volatile限定符
20. 連結詳解
1. 多目標檔案的連結
2. 定義和聲明
2.1. externstatic關鍵字
2.2. 標頭檔
2.3. 定義和聲明的詳細規則
3. 靜態庫
4. 共享庫
4.1. 編譯、連結、運行
4.2. 動態連結的過程
4.3. 共享庫的命名慣例
5. 虛擬內存管理
21. 預處理
1. 預處理的步驟
2. 宏定義
2.1. 函數式宏定義
2.2. 內聯函數
2.3. ###運算符和可變參數
2.4. 宏展開的步驟
3. 條件預處理指示
4. 其它預處理特性
22. Makefile基礎
1. 基本規則
2. 隱含規則和模式規則
3. 變數
4. 自動處理標頭檔的依賴關係
5. 常用的make命令行選項
23. 指針
1. 指針的基本概念
2. 指針類型的參數和返回值
3. 指針與數組
4. 指針與const限定符
5. 指針與結構體
6. 指向指針的指針與指針數組
7. 指向數組的指針與多維數組
8. 函數類型和函數指針類型
9. 不完全類型和複雜聲明
24. 函數介面
1. 本章的預備知識
1.1. strcpystrncpy
1.2. mallocfree
2. 傳入參數與傳出參數
3. 兩層指針的參數
4. 返回值是指針的情況
5. 回調函數
6. 可變參數
25. C標準庫
1. 字元串操作函數
1.1. 初始化字元串
1.2. 取字元串的長度
1.3. 拷貝字元串
1.4. 連接字元串
1.5. 比較字元串
1.6. 搜索字元串
1.7. 分割字元串
2. 標準I/O庫函數
2.1. 檔案的基本概念
2.2. fopen/fclose
2.3. stdin/stdout/stderr
2.4. errno與perror函數
2.5. 以位元組為單位的I/O函數
2.6. 操作讀寫位置的函數
2.7. 以字元串為單位的I/O函數
2.8. 以記錄為單位的I/O函數
2.9. 格式化I/O函數
2.10. C標準庫的I/O緩衝區
2.11. 本節綜合練習
3. 數值字元串轉換函數
4. 分配內存的函數
26. 鏈表、二叉樹和哈希表
1. 鏈表
1.1. 單鏈表
1.2. 雙向鏈表
1.3. 靜態鏈表
1.4. 本節綜合練習
2. 二叉樹
2.1. 二叉樹的基本概念
2.2. 排序二叉樹
3. 哈希表
27. 本階段總結