C程序设计新思维(第2版)

978-7-115-46095-0
作者: [美]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

详情

本书汇集编写高效、实用的C程序所需的工具和技巧,倡导读者重新认识并重视C语言,以更好地使用C语言。书中继承了上一版中关于如何实用shell、makefiles、漂亮的文本编辑器、调试器、内存管理等工具和技术,并附加了关于并发编程、虚拟表等特性的介绍,更好地帮助C语言使用者进行拾遗补漏。另外,书中提供了链表结构和XML解析器的现成的库,便于读者使用,同时对如何编写易读代码和函数接口进行了讲解。

图书摘要

相关图书

 51单片机C语言程序设计教程
51单片机C语言程序设计教程
“笨办法”学C语言
“笨办法”学C语言
C语言从入门到精通(精粹版)
C语言从入门到精通(精粹版)
C Primer Plus(第6版)中文版
C Primer Plus(第6版)中文版
嵌入式Linux与物联网软件开发——C语言内核深度解析
嵌入式Linux与物联网软件开发——C语言内核深度解析
C语言编程初学者指南
C语言编程初学者指南

相关文章

相关课程