●前言
篇 準備篇
章 C語言概述 2
1.1 C語言的起源與發展 2
1.2 C語言特性 3
1.3 開發環境搭建 4
1.3.1 Windows開發環境 4
1.3.2 UNIX/Linux開發環境 13
1.3.3 隨書網盤的開發環境 33
1.4 hello,world 38
1.5 小結 43
第2章 C語言快速入門 44
2.1 C語言的語法特點 44
2.2 猜數字遊戲 45
2.2.1 編寫輸入數字的C代碼 46
2.2.2 限制輸入數字的範圍 46
2.2.3 引入循環機制,允許重新輸入 48
2.2.4 產生1~500以內的隨機整數 50
2.2.5 反復接收玩家輸入,直到猜中數字為止 52
2.2.6 自動猜數算法 54
2.3 小結 57
第3章 AT&T彙編概述 58
3.1 AT&T彙編基礎 58
3.1.1 IA-32指令 58
3.1.2 彙編的作用 59
3.1.3 AT&T彙編語言的特點 59
3.1.4 個AT&T彙編 61
3.2 程序運行機制 64
3.3 小結 65
第二篇 基礎篇
第4章 指針基礎 68
4.1 C指針概述 68
4.2 C指針基礎 69
4.2.1 指向標量的C指針 69
4.2.2 指向數組的C指針 73
4.2.3 指針數組 75
4.2.4 函數參數中使用指針 82
4.2.5 常量指針 85
4.2.6 函數指針 88
4.2.7 文件指針 91
4.3 小結 98
第5章 C開發基礎 99
5.1 編譯與調試C程序 99
5.1.1 GCC與GDB 99
5.1.2 make工具與makefile 104
5.2 GLib函數庫 107
5.2.1 GLib簡述 107
5.2.2 GLib基礎 110
5.2.3 GLib數據類型及標準宏 118
5.3 內存管理 120
5.3.1 glibc的內存管理 120
5.3.2 內存分配機制 121
5.3.3 內存回收 125
5.4 Ncurses庫 137
5.4.1 Ncurses簡述 137
5.4.2 Ncurses基礎 137
5.4.3 Ncurses實例:文字編輯器 154
5.5 小結 181
第三篇 進階篇
第6章 C開發技巧集錦 184
6.1 遞歸 184
6.1.1 遞歸概述 184
6.1.2 斐波那契數列 184
6.1.3 brainfuck解釋器 186
6.2 字符串操作 196
6.2.1 復制並截斷字符串 196
6.2.2 字符串拼接 197
6.2.3 在內存中復制字符串 197
6.2.4 目錄的尾部位置 197
6.2.5 查找文件擴展名 198
6.3 加法溢出 198
6.3.1 溢出原理 198
6.3.2 溢出應用 199
6.4 編譯信息的預定義宏 200
6.4.1 __FILE__與__LINE__ 201
6.4.2 #line與#error 201
6.5 C與彙編語言混合編程 202
6.5.1 寄存器 203
6.5.2 變量存儲分配 204
6.5.3 彙編指令概述 205
6.5.4 C編譯執行原理 207
6.5.5 彙編調用C庫函數 209
6.5.6 C內聯彙編 210
6.6 小結 216
第7章 C並行與網絡基礎 217
7.1 多進程、多線程基礎 217
7.1.1 多進程編程 218
7.1.2 多線程委托模型 220
7.1.3 分離線程 222
7.1.4 取消線程 224
7.1.5 多線程競爭域 230
7.1.6 線程互斥對像 232
7.1.7 線程專有數據 239
7.1.8 消息隊列 241
7.2 C網絡基礎 245
7.2.1 TCP基礎 245
7.2.2 TCP編程基礎 245
7.2.3 TCP編程示例 248
7.3 小結 254
內容簡介
全書分為準備篇、基礎篇、揭秘篇、實戰篇。本書力求從底層實現機制進行解析,同時配合C/C++編程技巧以及某些指針運用技巧,講解如何提高程序效能,如何避免濫用指針。準備篇中介紹C指針概述、UBUNTU及開發環境配置、AT&T彙編簡介、編譯原理基礎;基礎篇將對AT&T彙編以及C指針基礎進行介紹;揭秘篇講述不錯C指針的實現機制以及C++指針實現機制,同時講解編程技巧和C/C++指針不錯應用;實戰篇講解解釋語言指針、TCC編譯實踐、垃圾回收等不錯C指針應用話題。