预购商品
书目分类
特别推荐
這本書按級別組織,編號從0到3。初始級別0,名為“邂逅”,它將總結使用C進行程式設計的基礎知識。它的主要作用是提醒你我們所提到的主要概念,並使你熟悉C應用的特殊詞彙。 第1級“相識”詳細描述了大多數主要概念和特性,如控制結構、資料類型、操作符和函數。 第2級“相知”是C語言的核心,完全解釋了指針,使你熟悉C的記憶體模型,並使你能夠理解C的大部分庫函數介面。 第3級“深入”詳細介紹了特定主題,如性能、可重複輸入、原子性、執行緒和泛類型程式設計。
【第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
Jens Gustedt 在波恩大學和柏林工業大學完成了他的數學學業。他當時的研究涉及離散數學與高效計算的交叉。自1998年以來,他一直在法國國家資訊與自動化研究所(INRIA)擔任高級科學家,先是在法國南錫的LORIA實驗室工作,自2013年起在斯特拉斯堡的ICube實驗室工作。 在整個職業生涯中,他的大部分科學研究一直伴隨著軟體的發展,一開始主要是C++,然後又專注於C。他現在作為ISO委員會JTC1/SC22/WG14的專家為AFNOR服務,並且是C標準文檔ISO/IEC 9899:2018的聯合編輯。他還有一個成功的博客,涉及C語言編程和相關主題:https://gustedt.wordpress.com。
客服公告
热门活动
订阅电子报