現代C:概念剖析和編程實踐 Modern C

Jens Gustedt

  • 出版商: 機械工業
  • 出版日期: 2021-06-01
  • 售價: $714
  • 貴賓價: 9.5$678
  • 語言: 簡體中文
  • 頁數: 348
  • 裝訂: 平裝
  • ISBN: 7111681967
  • ISBN-13: 9787111681960
  • 相關分類: C 程式語言
  • 此書翻譯自: Modern C
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

這本書按級別組織,編號從0到3。
初始級別0,名為“邂逅”,它將總結使用C進行編程的基礎知識。
它的主要作用是提醒你我們所提到的主要概念,並使你熟悉C應用的特殊詞彙。
第1級“相識”詳細描述了大多數主要概念和特性,如控制結構、數據類型、操作符和函數。
第2級“相知”是C語言的核心,完全解釋了指針,使你熟悉C的內存模型,並使你能夠理解C的大部分庫函數接口。
第3級“深入”詳細介紹了特定主題,如性能、可重複輸入、原子性、線程和泛類型編程。

作者簡介

Jens Gustedt在波恩大學和柏林工業大學完成了他的數學學業。
他當時的研究涉及離散數學與高效計算的交叉。
自1998年以來,他一直在法國國家信息與自動化研究所(INRIA)擔任高級科學家,先是在法國南錫的LORIA實驗室工作,自2013年起在斯特拉斯堡的ICube實驗室工作。
在整個職業生涯中,他的大部分科學研究一直伴隨著軟件的發展,一開始主要是C++,然後又專注於C。
他現在作為ISO委員會JTC1/SC□□/WG14的專家為AFNOR服務,並且是C標准文檔ISO/IEC 9899:2018的聯合編輯。
他還有一個成功的博客,涉及C語言編程和相關主題:https://gustedt.wordpress.com。

目錄大綱

譯者序
致謝
前言
作者簡介
第0級邂逅
第1章入門2
1.1命令式編程3
1.2編譯和運行4

第2章程序的主要結構8
2.1語法8
2.2聲明10
2.3定義12
2.4語句13
2.4.1循環14
2.4.2函數調用14
2.4.3函數返回15

第1級相識
第3章一切都和控制有關21
3.1條件執行21
3.2循環24
3.3多重選擇28

第4章表達式計算31
4.1算術33
4.1.1 +、-和* 34
4.1.2除法和余數34
4.2修改對象的運算符35
4.3布爾情景36
4.3.1比較36
4.3.2邏輯37
4.4三元或條件運算符38
4.5求值順序39

第5章基本值和數據41
5.1抽象狀態機42
5.1.1值43
5.1.2類型44
5.1.3二進製表示和抽象狀態機44
5.1.4優化45
5.2基本類型46
5.3指定值49
5.4隱式轉換52
5.5初始值設定55
5.6命名常量56
5.6.1只讀對象57
5.6.2枚舉58
5.6.3宏59
5.6.4複合字面量60
5.7二進製表示61
5.7.1無符號整型61
5.7.2位集和按位運算符62
5.7.3位移運算符63
5.7.4布爾值64
5.7.5有符號整型64
5.7.6固定寬度整型67
5.7.7浮點數據68

第6章派生數據類型70
6.1數組71
6.1.1數組聲明71
6.1.2數組操作72
6.1.3數組長度72
6.1.4數組作為參數73
6.1.5字符串是特殊的74
6.2指針作為不透明類型77
6.3結構79
6.4類型的新名稱:類型別名85

第7章函數87
7.1簡單函數88
7.2 main是特殊的函數90
7.3遞歸91

第8章C庫函數98
8.1 C庫函數的一般特性及功能98
8.1.1頭文件99
8.1.2接口100
8.1.3錯誤檢查100
8.1.4邊界檢查接口101
8.1.5平台前提條件102
8.2數學103
8.3輸入、輸出和文件操作105
8.3.1無格式文本輸出105
8.3.2文件和流107
8.3.3文本IO 109
8.3.4格式化輸出110
8.3.5無格式文本輸入113
8.4字符串處理和轉換115
8.5時間119
8.6運行時環境設置123
8.7程序終止和斷言125

第2級相知
第9章風格130
9.1格式131
9.2命名132

第10章組織與文檔136
10.1接口文檔137
10.2實現139
10.2.1宏140
10.2.2純函數142

第11章指針147
11.1指針操作148
11.1.1操作符的地址和對象148
11.1.2指針加法149
11.1.3指針減法和差151
11.1.4指針合法性153
11.1.5空指針155
11.2指針和結構156
11.3指針和數組159
11.3.1數組訪問和指針訪問是一樣的160
11.3.2數組參數和指針參數是一樣的160
11.4函數指針161

第12章C內存模型167
12.1統一內存模型168
12.2 union 169
12.3內存和狀態171
12.4指向非特定對象的指針172
12.5顯式轉換173
12.6有效類型175
12.7對齊176

第13章存儲179
13.1 malloc和友元180
13.1.1具有可變數組大小的一個完整例子181
13.1.2確保動態分配的一致性188
13.2存儲持續時間、生命週期和可見度189
13.2.1靜態存儲持續時間192
13.2.2自動存儲持續時間193
13.3題外話:在定義對象之前使用對象194
13.4初始化196
13.5題外話:機器模型198

第14章涉及更多的處理和IO 202
14.1文本處理202
14.2格式化輸入209
14.3擴展字符集210
14.4二進制流218
14.5錯誤檢查和清理219

第3級深入
第15章性能226
15.1內聯函數228
15.2使用restrict限定符232
15.3測量和檢驗233

第16章類似函數的宏242
16.1類似函數的宏如何工作243
16.2參數檢查245
16.3訪問調用上下文249
16.4默認參數252
16.5可變長度參數列表253
16.5.1可變長參數宏253
16.5.2繞道:可變長參數函數258
16.6泛類型編程261

第17章控制流中的變化268
17.1一個複雜的例子270
17.2排序272
17.3短跳轉275
17.4函數276
17.5長跳轉277
17.6信號處理程序281

第18章線程291
18.1簡單的線程間控制294
18.2無競爭初始化和銷毀296
18.3線程本地數據299
18.4臨界數據和臨界區299
18.5通過條件變量進行通信302
18.6更複雜的線程管理307

第19章原子訪問和內存一致性310
19.1 “以前發生的”關係311
19.2 C庫調用提供同步314
19.3順序的一致性316
19.4其他一致性模型318
要點320
參考文獻333