C程序設計新思維, 2/e (21st Century C: C Tips from the New School, 2/e)
本·克萊蒙 (Ben Klemens)
- 出版商: 人民郵電
- 出版日期: 2018-01-01
- 定價: $474
- 售價: 8.5 折 $403
- 語言: 簡體中文
- 頁數: 354
- 裝訂: 平裝
- ISBN: 7115460957
- ISBN-13: 9787115460950
- 此書翻譯自: 21st Century C: C Tips from the New School, 2/e (Paperback)
-
相關翻譯:
21世紀 C語言, 2/e (21st Century C: C Tips from the New School, 2/e) (繁中版)
下單後立即進貨 (約4週~6週)
買這商品的人也買了...
-
$620$527 -
$270$257 -
$580$458 -
$347藍牙 4.0 BLE 開發完全手冊-物聯網開發技術實戰
-
$474$450 -
$580$458 -
$301兩周自製腳本語言
-
$680$578 -
$1,330$1,303 -
$474$450 -
$580$493 -
$469自製編譯器
-
$352自己動手構造編譯系統:編譯、彙編與鏈接
-
$680$537 -
$3,200$3,040 -
$500$390 -
$580$458 -
$580$458 -
$500$390 -
$454精通 Git, 2/e (Pro Git, 2/e)
-
$6025G 移動無線通信技術
-
$880$748 -
$650$507 -
$250$225 -
$880$695
商品描述
C語言已經有幾十年的歷史了。經過長時間的發展和普及,C語言的應用場景有了很大的變化,一些舊觀念應該被淡化或者不再被推薦。
本書展現了傳統C語言教科書所不具有相關技術。全書分為開發環境和語言兩個部分,從編譯、調試、測試、打包、版本控制等角度,以及指針、語法、文本、結構、面向對象編程、函數庫等方面,對C程序設計的核心知識進行查缺補漏和反思。本書鼓勵讀者放棄那些對大型機才有意義的舊習慣,拿起新的工具來使用這門與時俱進的簡潔語言。
本書適合有一定基礎的C程序員和C語言學習者閱讀,也適合想要深入理解C語言特性的讀者參考。
作者簡介
自從於加州理工學院獲得社會科學博士後,Ben Klemens就一直從事統計分析和人口的計算機輔助建模工作。
他的觀點是,寫代碼一定應該是趣味橫生的,並先後非常愉快地為布魯金斯學會、世界銀行、美國國家精神健康中心等機構寫過分析和建模代碼(主要是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