|
-- 會員 / 註冊 --
|
|
|
|
C語言編程魔法書:基于C11標準 ( 簡體 字) |
作者:陳軼 | 類別:1. -> 程式設計 -> C -> C |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 46798 詢問書籍請說出此書號!【缺書】 NT售價: 495 元 |
出版日:5/1/2017 |
頁數:504 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111565215 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:主要講解C11標準的語法內容,并且從整個編譯、連接到加載過程都會涉及。同時在后會分別介紹GCC編譯器與Clang編譯器的C語言語法擴展。通過閱讀本書,讀者能夠完全掌握新標準的C語言編程。并且對C語言設計思想、實現方式也能有個大概的了解。 |
目錄:第一篇 預備知識篇 第1章C魔法概覽 /2 1.1 例說編程語言 2 1.2 用C語言編程的基本注意事項 6 1.3 主流C語言編譯器介紹 8 1.4 關于GNU規范的語法擴展 10 1.5 用C語言構建一個可執行程序的流程 11 1.6 本章小結 12 第2章學習C語言的預備知識 /14 2.1 計算機體系結構簡介 14 2.1.1 貯存器 15 2.1.2 存儲器 15 2.1.3 寄存器 16 2.1.4 計算單元 16 2.1.5 程序執行流程 16 2.2 整數在計算機中的表示 17 2.2.1 原碼表示法 18 2.2.2 補碼表示法 19 2.2.3 八進制數與十六進制數 20 2.3 浮點數在計算機中的表示 22 2.4 地址與字節對齊 24 2.5 字符編碼 25 2.6 大端與小端 28 2.7 按位邏輯運算 28 2.8 移位操作 30 2.8.1 算術左移與邏輯左移 30 2.8.2 邏輯右移 30 2.8.3 算術右移 31 2.8.4 循環右移 32 2.9 本章小結 32 第3章C語言編程的環境搭建 /33 3.1 Windows操作系統下搭建C語言編程環境 33 3.1.1 安裝Visual Studio Community 2017 34 3.1.2 安裝MinGW編譯器 40 3.1.3 安裝LLVM Clang編譯器 43 3.2 macOS系統下搭建C語言編程環境 45 3.3 本章小結 51 第二篇 基礎語法篇 第4章C語言中的基本元素 /54 4.1 C語言中的字符集 55 4.2 C語言中的token 56 4.2.1 C語言中的標識符 57 4.2.2 C語言中的關鍵字 58 4.2.3 C語言中的常量與字符串字面量 60 4.2.4 C語言中的標點符號 60 4.3 關于C語言中的“對象” 62 4.4 C語言中的“副作用” 63 4.5 C語言標準庫中的printf函數 63 4.6 本章小結 65 第5章基本數據類型 /66 5.1 整數類型 66 5.1.1 int類型 67 5.1.2 short類型 68 5.1.3 long類型 69 5.1.4 long long類型 71 5.1.5 布爾類型 72 5.1.6 字符類型 73 5.1.7 寬字符以及Unicode字符類型 77 5.1.8 size_t與ptrdiff_t類型 81 5.1.9 C語言中的標準整數類型 82 5.2 浮點類型 84 5.3 數據精度與類型轉換 86 5.3.1 整數晉升 87 5.3.2 帶符號與無符號整數之間的轉換 87 5.3.3 浮點數與浮點數的轉換以及浮點數與整數之間的轉換 90 5.4 C語言基本運算操作符 92 5.4.1 加、減、乘、除與求模運算操作符 92 5.4.2 按位邏輯操作符 93 5.4.3 自增、自減操作符 94 5.4.4 關系操作符、相等性操作符與邏輯操作符 95 5.4.5 移位操作符 96 5.4.6 圓括號操作符 97 5.5 sizeof操作符 98 5.6 投射操作符 99 5.7 本章小結 101 第6章用戶自定義類型 /102 6.1 枚舉類型 102 6.2 結構體類型 105 6.2.1 結構體概述 105 6.2.2 用結構體創建對象并訪問其成員 107 6.2.3 結構體復合字面量 110 6.3 聯合體類型 113 6.4 位域 117 6.4.1 位域的一般特性 118 6.4.2 位域成員的存放與布局 120 6.4.3 匿名位域 122 6.4.4 位域使用示例 124 6.5 字節對齊與字節填充 125 6.5.1 _Alignof操作符 125 6.5.2 _Alignas對齊說明符 126 6.5.3 結構體成員的字節對齊與字節填充 129 6.6 復數類型 133 6.7 本章小結 135 第7章C語言的數組與指針 /136 7.1 一維數組 136 7.2 多維數組 141 7.3 變長數組 145 7.4 一級指針與對象地址 147 7.4.1 地址與指針的基本概念 148 7.4.2 訪問指針對象所指對象的內容 149 7.4.3 指針對象的其他操作 150 7.5 多級指針 153 7.6 指向用戶自定義類型的指針 156 7.7 指針與數組的關系 159 7.8 指向數組的指針 162 7.9 void類型、指向void類型的指針與空指針 165 7.10 字符數組與字符串字面量 167 7.11 完整與不完整類型 170 7.12 靈活的數組成員 171 7.13 本章小結 173 第8章C語言的控制流語句 /174 8.1 逗號表達式 174 8.2 條件表達式 176 8.3 if-else語句 176 8.4 switch-case語句 179 8.5 while與do-while迭代語句 182 8.6 for迭代語句 187 8.7 goto語句 189 8.8 本章小結 192 第9章C語言的函數 /193 9.1 函數的聲明與定義 194 9.2 函數調用與實現 196 9.2.1 函數調用的順序點 197 9.2.2 函數的棧空間 200 9.2.3 函數的參數傳遞與返回 201 9.2.4 通過形參修改實參的值 204 9.3 數組類型作為函數形參 205 9.4 帶有不定參數類型及個數的函數聲明與調用 209 9.5 函數的遞歸調用 212 9.6 內聯函數 218 9.7 函數的返回類型與無返回函數 221 9.8 指向函數的指針 223 9.9 C語言中的主函數main 226 9.10 函數與函數調用作為sizeof操作符 228 9.11 本章小結 229 第10章C語言預處理器 /230 10.1 宏定義 231 10.1.1 宏的基本使用 232 10.1.2 宏定義中的#操作符 234 10.1.3 宏定義中的##操作符 236 10.1.4 宏替換 238 10.1.5 可變參數的宏定義 240 10.2 C語言中預定義的宏 243 10.2.1 C語言強制要求的預定義宏 243 10.2.2 環境宏 244 10.2.3 條件特征宏 245 10.2.4 主流編譯器及平臺預定義的宏 246 10.3 條件預編譯 247 10.4 源文件包含預處理指示符 251 10.5 #error 預處理指示符 256 10.6 #line 預處理指示符 256 10.7 #undef 預處理指示符 257 10.8 pragma預編譯指示符與操作符 258 10.9 空指示符與C語言中的程序注釋 260 10.10 本章小結 262 第11章C語言程序的編譯上下文 /263 11.1 C語言程序中的作用域和名字空間 263 11.1.1 文件作用域 264 11.1.2 函數作用域 265 11.1.3 函數原型作用域 266 11.1.4 語句塊作用域 267 11.1.5 標識符的重定義與作用域的疊交 269 11.1.6 標識符的名字空間 272 11.2 全局對象與函數 275 11.3 靜態對象與函數 277 11.4 局部對象 280 11.5 對象的存儲與生命周期 282 11.6 _Thread_local對象 285 11.7 本章小結 286 第三篇 高級語法篇 第12章C語言中的類型限定符 /290 12.1 const限定符 290 12.1.1 const限定符修飾普通對象 291 12.1.2 const限定符修飾數組元素 293 12.1.3 const限定符修飾指針類型對象 294 12.1.4 const限定符修飾函數形參類型為數組的對象 299 12.1.5 類型限定符的本質含義 301 12.2 volatile限定符 302 12.3 restrict限定符 304 12.4 _Atomic限定符 307 12.5 本章小結 314 第13章C語言的類型系統 /316 13.1 對象類型與函數類型 316 13.2 對聲明符的進一步說明 318 13.3 更復雜的聲明 322 13.3.1 將某一類型轉換為指向該類型的指針 322 13.3.2 判定當前類型屬于哪種對象類型 322 13.3.3 復雜復合類型的判斷 324 13.4 typedef類型定義 327 13.4.1 typedef的一般使用 327 13.4.2 typedef與類型限定符相結合的使用 330 13.4.3 用typedef來定義結構體與聯合體的類型 332 13.5 本章小結 335 第14章C11標準中的表達式、左值與求值順序 /336 14.1 常量表達式 338 14.2 泛型選擇表達式 340 14.3 靜態斷言 343 14.4 C語言中的左值 344 14.5 C語言中表達式的求值順序 348 14.6 C語言中的語句 352 14.7 本章小結 355 第15章函數調用約定與ABI /356 15.1 Windows操作系統環境下x86處理器的函數調用約定 357 15.1.1 Windows操作系統下32位x86執行模式的函數調用約定 357 15.1.2 Windows操作系統下64位x86執行模式的函數調用約定 363 15.2 Unix/Linux操作系統環境下x86處理器的函數調用約定 368 15.3 ARM處理器環境下的函數調用約定 370 15.3.1 AArch32架構環境下的函數調用約定 370 15.3.2 AArch64架構環境下的函數調用約定 373 15.4 本章小結 375 第16章創建靜態庫與動態庫 /376 16.1 Windows系統下創建靜態庫與動態庫 377 16.1.1 Windows系統下創建并使用靜態庫 377 16.1.2 Windows系統上創建并使用動態庫 379 16.2 macOS系統下創建靜態庫與動態庫 382 16.2.1 macOS系統下創建并使用靜態庫 383 16.2.2 macOS系統下創建并使用動態庫 386 16.3 Linux系統下創建并使用靜態庫與動態庫 390 16.3.1 Linux系統下創建并使用靜態庫文件 390 16.3.2 Linux系統下創建并使用動態庫 391 16.4 本章小結 393 第四篇 語法擴展篇 第17章GCC對C11標準的語法擴展 /396 17.1 在表達式中使用復合語句與聲明 397 17.2 聲明語句塊作用域的跳轉標簽 398 17.3 跳轉標簽作為值 401 17.4 嵌套函數 402 17.5 使用typeof來獲取對象類型 405 17.6 使用__auto_type做類型自動推導 409 17.7 對復數操作的擴展 411 17.8 半精度浮點類型 412 17.9 長度為零的數組 413 17.10 對可變參數個數的宏的語法擴展 415 17.11 case語句中使用范圍表達式 417 17.12 投射到一個聯合體類型 418 17.13 使用二進制整數字面量 419 17.14 使用__attribute__指定函數、對象與類型的屬性 420 17.14.1 __attribute__用于修飾函數的屬性 422 17.14.2 __attribute__用于修飾對象的屬性 440 17.14.3 __attribute__用于修飾類型的屬性 443 17.15 本章小結 444 第18章Clang編譯器對C11標準的擴展 /445 18.1 特征檢查宏 446 18.2 _Nullable與_Nonnull 446 18.3 函數重載 448 18.4 Blocks語法 449 18.5 本章小結 462 第19章對C語言的未來展望 /463 19.1 C語言中的屬性 465 19.2 fallthrough屬性 466 19.3 數組片段 467 19.3.1 數組片段的賦值操作 468 19.3.2 數組片段的算術計算操作 470 19.3.3 數組片段用于函數調用的情況 471 19.4 其他語法特性 472 19.5 本章小結 472 第五篇 項目實踐篇 第20章制作UTF-8與UTF-16編碼字符串的轉碼器 /474 20.1 UTF-8字符編碼格式 474 20.2 UTF-16字符編碼格式 476 20.3 代碼示例 478 20.4 本章小結 487 第21章制作控制臺計算器 /488 21.1 對數字的解析 489 21.2 對操作符的優先級處理 489 21.3 代碼示例 491 21.4 本章小結 504 |
序: |
|