第1章 概要 1
1.1 現在C依然很熱門 1
1.2 使用C進行嵌入式開發的特點 3
1.3 本書的目標 5
1.3.1 C與集成開發環境 5
1.3.2 C與設計模式 6
1.3.3 C與極限編程 7
1.3.4 C與現代開發方式 9
1.4 總結 11
第2章 搭建開發環境 13
2.1 概要 13
2.2 獲取Linux 13
2.3 在Windows PC上搭建環境 14
2.4 安裝Linux 20
2.4.1 準備工作 20
2.4.2 製作安裝介質 21
2.4.3 安裝Xubuntu 24
2.5 安裝Eclipse 29
2.5.1 安裝Java 29
2.5.2 安裝Eclipse 30
2.5.3 安裝其他工具 33
2.6 Eclipse的基本操作 34
2.6.1 Hello, World 34
2.6.2 視圖 38
2.6.3 工程、工作區和透視圖 38
2.7 Eclipse的功能 41
2.7.1 可視化調試 41
2.7.2 導航器 48
2.7.3 代碼補全 51
2.7.4 宏展開 53
2.7.5 本地代碼曆史 54
2.7.6 TODO注釋 55
2.7.7 與外部編輯器協作 56
2.8 總結 58
第3章 C語言與麵嚮對象 59
3.1 概要 59
3.2 C的模塊化與麵嚮對象 59
3.2.1 C與模塊化 60
3.2.2 使用結構體將數據結構與代碼塊分離 62
3.2.3 使用C進行麵嚮對象編程 66
3.2.4 麵嚮對象與多態性 75
3.2.5 繼承 76
3.2.6 封裝 79
3.2.7 虛函數錶 80
3.2.8 非虛函數 82
3.3 總結 84
第4章 C語言與設計模式 85
4.1 狀態模式 85
4.1.1 狀態遷移圖 85
4.1.2 狀態遷移錶 89
4.1.3 麵嚮對象的狀態模式 90
4.1.4 多個狀態集閤相互關聯的情況 93
4.1.5 狀態模式與內存管理 94
4.2 模闆方法模式 95
4.2.1 返迴非int值 99
4.2.2 處理其他資源 100
4.2.3 上下文 107
4.3 觀察者模式 114
4.4 職責鏈模式 125
4.5 訪問者模式 128
4.6 總結 134
第5章 C語言與重構 135
5.1 概要 135
5.2 測試驅動開發 136
5.3 TDD入門 137
5.3.1 設置Eclipse 137
5.3.2 初次測試驅動開發 142
5.3.3 測試靜態函數 147
5.4 重構 150
5.4.1 對外接口 150
5.4.2 重構與投資 150
5.5 TDD實踐篇 151
5.5.1 怪獸方法 152
5.5.2 C語言的Mock測試 162
5.5.3 完成重構 182
5.5.4 獲取代碼覆蓋率 186
5.6 總結 188
第6章 持續集成與部署 191
6.1 概要 191
6.2 持續集成的前提 192
6.2.1 軟件配置管理工具 192
6.2.2 構建工具 192
6.2.3 Bug跟蹤係統(BTS) 193
6.3 引入CI服務器 193
6.4 CI入門 196
6.4.1 本次CI的自動化目標 196
6.4.2 Scons構建腳本 197
6.4.3 gcovr的安裝 199
6.4.4 構建 200
6.4.5 提交至SCM 202
6.4.6 創建Jenkins任務 203
6.5 內存Bug大作戰 214
6.5.1 安裝 214
6.5.2 運行Valgrind 214
6.5.3 Valgrind可以檢測齣的錯誤 215
6.5.4 Valgrind中檢測齣的內存錯誤的特點與對策 220
6.5.5 在Jenkins中使用Valgrind 221
6.6 CI實踐篇 228
6.6.1 Microchip工具 229
6.6.2 構建內容 230
6.6.3 分割構建文件 234
6.6.4 獨立構建服務器 240
6.6.5 設置自動構建計劃 247
6.7 總結 249
附錄A 示例代碼 251
A.1 注意事項 251
A.2 添加C99標準 251
A.3 在Eclipse中導入示例代碼 252
A.3.1 解壓示例代碼壓縮文件 252
A.3.2 Eclipse中新建空白工程 252
· · · · · · (
收起)