
作者:[奥地利]克里斯托弗 普雷斯切恩(Chr
页数:340
出版社:中国电力出版社
出版日期:2024
ISBN:9787519888534
电子书格式:pdf/epub/txt
内容简介
本书分为两部分。在第I部分中,你将学习到如何为C编程语言专门实施用于实战设计的知识。第II部分包括将C编程模式应用于实现大型程序的经验。你将了解到如何通过拥有良好的设计决策的设计模式使得生活更轻松。本书包括以下模式:错误处理。返回错误信息。内存管理。从C函数返回数据。数据的生命周期和所有权。灵活的API。灵活的迭代器接口。在模块化程序中组织文件。逃离#ifdef地狱。
作者简介
[奥]克里斯托弗·普雷斯切恩(Christopher Preschern),组织设计模式会议并发起提高设计模式编写的活动。作为ABB公司的一名C语言程序员,他收集并记录了如何编写企业级代码的实战知识。他曾在Graz University of Technology讲授编程和编程质量,并拥有计算机科学博士学位。
本书特色
在C语言编程的领域,很难得到专家的建议。尽管面向对象的编程语言有大量的帮助可供选择,但对于C语言却出奇地少。有了这本实战指南,无论是初学者还是经验丰富的C语言程序员,都能找到有关设计决策的指导,包括如何逐步将它们应用到构建大规模程序时的运行代码示例中。 专家推荐“本书是一个优秀的资源,它介绍了许多实际应用的例子,帮助你使代码更加整洁和易于维护。” ——David Griffiths 《Head First C》的作者 “这本书指导初学者用C语言制作企业级产品。” ——Robert Hanmer 软件架构师
本书会讲解基本的编程概念并演示如何在C语言中运用这些概念。在阅读本书的过程中,你会看到如何利用这些概念来组织程序的结构,并编写出可以运行的C程序。有一些范例会演示函数、数据类型以及条件语句的用法,另一些则会演示循环、迭代、数组、指针与字符串的用法。这些范例会让你逐渐了解如何在代码中添加注释、如何测试并验证程序的结果是否正确、如何使用基本的输入与输出机制,以及如何编写完整的应用程序。
目录
前言 ..1
第I 部分 C 语言的模式
第1 章 错误处理 21
1.1 运行示例23
1.2 函数拆分24
1.3 守卫子句28
1.4 武士原则32
1.5 Goto 处理错误 36
1.6 清理记录40
1.7 基于对象的错误处理 ..43
1.8 总结 .48
1.9 进一步阅读 ..48
1.10 展望 ..49
第2 章 返回错误信息 ..51
2.1 运行示例53
2.2 返回状态码 ..54
2.3 返回相关错误 .62
2.4 特定返回值 ..69
2.5 错误日志73
2.6 总结 .80
2.7 进一步阅读 ..81
2.8 展望 .81
第3 章 内存管理 83
3.1 动态内存中的数据存储与问题 ..85
3.2 运行示例87
3.3 栈优先 88
3.4 永久内存92
3.5 懒清理 96
3.6 专属所有权 101
3.7 分配包装器 105
3.8 指针检查. 110
3.9 内存池 . 114
3.10 总结 121
3.11 进一步阅读 .121
3.12 展望 122
第4 章 从C 的函数中返回数据 . 123
4.1 运行示例.125
4.2 返回值 .126
4.3 输出参数.130
4.4 聚合实例.135
4.5 不可变实例 140
4.6 调用者自持缓冲区 .144
4.7 被调用者分配 ..149
4.8 总结 ..154
4.9 展望 ..154
第5 章 数据的生命周期及所有权 . 155
5.1 无状态的软件模块 .157
5.2 带有全局状态的软件模块 .162
5.3 调用者自持实例 .168
5.4 共享实例.174
5.5 总结 ..182
5.6 进一步阅读 182
5.7 展望 ..183
第6 章 灵活的API . 185
6.1 头文件 .187
6.2 句柄 ..191
6.3 动态接口.195
6.4 函数控制.199
6.5 总结 ..203
6.6 进一步阅读 204
6.7 展望 ..204
第7 章 灵活的迭代器接口 .. 205
7.1 运行示例.207
7.2 索引访问.208
7.3 游标迭代器 213
7.4 回调迭代器 218
7.5 总结 ..224
7.6 进一步阅读 225
7.7 展望 ..226
第8 章 在模块化程序中组织文件 . 227
8.1 运行示例.229
8.2 引用守卫.232
8.3 软件模块目录 ..235
8.4 全局引用目录 ..241
8.5 自包含组件 246
8.6 API 复制 .252
8.7 总结 ..262
8.8 展望 ..262
第9 章 逃离#ifdef 地狱 263
9.1 运行示例.265
9.2 避免变体.267
9.3 独立元函数 271
9.4 原子元函数 275
9.5 抽象层 .278
9.6 拆分变体实现 ..284
9.7 总结 ..291
9.8 进一步阅读 292
9.9 展望 ..292
第II 部分 模式故事
第10 章 实现日志功能 . 295
10.1 模式的故事 .295
10.1.1 文件组织 296
10.1.2 核心日志函数 ..297
10.1.3 日志源过滤器 ..299
10.1.4 条件日志记录 ..301
10.1.5 多个记录日志的地方 302
10.1.6 文件日志记录 ..304
10.1.7 跨平台文件305
10.1.8 使用日志记录器 .308
10.2 总结 309
第11 章 构建用户管理系统 311
11.1 模式的故事 . 311
11.1.1 数据组织 311
11.1.2 文件组织 313
11.1.3 认证:错误处理 .315
11.1.4 认证:错误日志 .317
11.1.5 添加用户:错误处理 318
11.1.6 迭代 ..321
11.1.7 使用用户管理系统 323
11.2 总结 324
第12 章 总结 .. 327
12.1 你学到的内容 327
12.2 进一步阅读 .327
12.3 结束语 ..328















