C程式設計新思維(第2版)

C程式設計新思維(第2版)

《C程式設計新思維(第2版)》是2019年6月人民郵電出版社出版的圖書,作者是[美]Ben Klemens 克萊蒙。

基本介紹

  • 中文名:C程式設計新思維(第2版)
  • 作者:[美]Ben Klemens 克萊蒙
  • 出版社:人民郵電出版社
  • 出版時間:2019年6月
  • 頁數:354 頁
  • 定價:79 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787115460950
內容簡介,圖書目錄,

內容簡介

C語言已經有幾十年的歷史了。經過長時間的發展和普及,C語言的套用場景有了很大的變化,一些舊觀念應該被淡化或者不再被推薦。
本書展現了傳統C語言教科書所不具有相關技術。全書分為開發環境和語言兩個部分,從編譯、調試、測試、打包、版本控制等角度,以及指針、語法、文本、結構、面向對象編程、函式館等方面,對C程式設計的核心知識進行查缺補漏和反思。本書鼓勵讀者放棄那些對大型機才有意義的舊習慣,拿起新的工具來使用這門與時俱進的簡潔語言。
本書適合有一定基礎的C程式設計師和C語言學習者閱讀,也適合想要深入理解C語言特性的讀者參考。

圖書目錄

第 1部分 開發環境
第 1章 準備方便的編譯環境 3
1.1 使用包管理工具 4
1.2 在Windows下編譯C程式 6
1.2.1 Windows中的POSIX環境 7
1.2.2 在POSIX環境中編譯C語言 8
1.2.3 在非POSIX環境中編譯C語言 9
1.3 連結函式館的方式 10
1.3.1 一些我喜歡的選項 12
1.3.2 路徑 13
1.3.3 運行時連線 16
1.4 使用makefile 16
1.4.1 設定變數 17
1.4.2 規則 20
1.5 以源檔案的方式使用庫 24
1.6 以源檔案的方式使用庫(即使你的系統管理員不想叫你這么做) 25
1.7 通過here來編譯C程式 27
1.7.1 在命令行里包含頭檔案 27
1.7.2 統一的頭檔案 28
1.7.3 here文檔 29
1.7.4 從stdin中編譯 30
第 2章 調試、測試和文檔 32
2.1 使用調試器 32
2.1.1 調試的偵探故事 34
2.1.2 GDB變數 43
2.1.3 列印結構 45
2.2 利用Valgrind檢查錯誤 49
2.3 單元測試 51
2.3.1 把程式用作庫 54
2.3.2 測試覆蓋 55
2.4 錯誤檢查 56
2.4.1 在錯誤中的用戶的角色? 56
2.4.2 用戶工作的上下文環境 58
2.4.3 如何返回錯誤信息 60
2.5 編制文檔 60
2.5.1 Doxygen 61
2.5.2 用CWEB解釋代碼 62
第3章 打包項目 65
3.1 shell 66
3.1.1 用shell命令的輸出來替換命令 66
3.1.2 用shell的循環來處理一組檔案 68
3.1.3 針對檔案的測試 70
3.1.4 fc 73
3.2 makefile還是shell腳本 75
3.3 用Autotools打包代碼 77
3.3.1 一個Autotools的示例 79
3.3.2 用makefile.am來描述makefile 82
3.3.3 配置腳本 87
第4章 版本控制 92
4.1 通過diff查看差異 93
4.2 Git的對象 94
4.3 樹和它們的分支 99
4.3.1 融合 100
4.3.2 遷移 102
4.4 遠程版本庫 103
第5章 協助開發 106
5.1 動態裝載 106
5.2 流程 109
5.2.1 為外來語言寫程式 110
5.2.2 包裝函式 110
5.2.3 跨越邊境的代理數據結構 111
5.2.4 連結 112
5.3 與Python一起工作 113
5.3.1 編譯與連線 114
5.3.2 Automake的條件子 114
5.3.3 Autotools支持下的Distutils 116
第 2部分 語言
第6章 玩轉指針 121
6.1 自動、靜態和手工記憶體 121
6.2 持久性的狀態變數 125
6.3 不使用malloc的指針 127
6.3.1 結構被複製,數組創建別名 129
6.3.2 malloc和記憶體操縱 132
6.3.3 錯誤來源於星號 133
6.3.4 你需要知道的各種指針運算 134
6.3.5 將typedef作為一種教學工具 137
第7章 教科書不應該再過多介紹的C語言語法 139
7.1 不需要明確地從main函式返回 139
7.2 讓聲明的位置更靈活 140
7.3 減少類型轉換 143
7.4 枚舉和字元串 145
7.5 標籤、goto、switch和break 147
7.5.1 探討goto 147
7.5.2 switch 150
7.6 被摒棄的float 151
7.7 比較無符號整型數 154
7.8 安全的將字元串解析成數字 154
第8章 那些C語言教科書經常不講解的語法 158
8.1 營造健壯和繁盛的宏 158
8.1.1 預處理器技巧 162
8.1.2 測試宏 166
8.1.3 避免頭檔案重複包含 168
8.2 static和extern連結 170
8.3 const關鍵字 173
8.3.1 名詞-形容詞形式 174
8.3.2 壓力 175
8.3.3 深度 176
8.3.4 char const **問題 177
第9章 簡單的文本處理 180
9.1 使用asprintf,使字元串的處理不再那么痛苦 180
9.1.1 安全 183
9.1.2 常量字元串 184
9.1.3 用asprintf擴展字元串 185
9.1.4 strtok的讚歌 187
9.2 Unicode 192
9.2.1 C代碼的編碼 194
9.2.2 Unicode函式館 195
9.2.3 示例代碼 196
第 10章 更好的結構 200
10.1 複合常量 201
10.2 可變參數宏 202
10.3 安全終止的列表 204
10.4 多列表 205
10.5 Foreach 206
10.6 函式的向量化 207
10.7 指定的初始化器 209
10.8 用零初始化數組和結構 211
10.9 typedef可以化繁為簡 212
10.10 從函式返回多個數據項 214
10.11 靈活的函式輸入 218
10.11.1 把函式聲明為printf風格 219
10.11.2 可選參數和命名參數 221
10.11.3 使無聊的函式煥發光彩 223
10.12 void指針以及它所指向的結構 229
10.12.1 具有通用輸入的函式 229
10.12.2 通用結構 234
第 11章 C語言面向對象編程 240
11.1 擴展結構和字典 241
11.1.1 實現一個字典 243
11.1.2 C,更少的縫隙 247
11.2 你結構中的函式 253
11.3 作用域 261
11.4 用操作符重載進行重載 264
11.5 引用計數 268
11.5.1 示例:一個子字元串對象 268
11.5.2 一個基於代理的組構造模型 273
11.5.3 結論 280
第 12章 多執行緒 281
12.1 環境 282
12.2 OpenMP 283
12.2.1 編譯OpenMP、pthreads和C原子(atom) 286
12.2.2 衝突 287
12.2.3 映射縮減 288
12.2.4 多任務 289
12.3 執行緒本地 290
12.4 共享資源 292
12.5 pthread 299
12.6 C原子 304
第 13章 函式館 311
13.1 GLib 311
13.2 POSIX 312
13.2.1 解析正則表達式 312
13.2.2 為巨大的數據集合使用mmap 317
13.3 GNU科學計算庫 320
13.4 SQLite 322
13.5 libxml和cURL 325
附錄A C101 329
後記 348
術語表 349

相關詞條

熱門詞條

聯絡我們