4951980|[按需印刷]c高级编程:基于模块化设计思想的c语言开发
9787111536413
¥
108.18
全新
库存999件
作者吉星
出版社机械工业出版社
ISBN9787111536413
出版时间2010-01
装帧平装
货号531549354001
上书时间2023-04-25
商品详情
- 品相描述:全新
- 商品描述
-
书名: 【按需印刷】C高级编程:基于模块化设计思想的C语言开发[按需印刷]|4951980 图书定价: 99元 图书作者: 吉星 出版社: 机械工业出版社 出版日期: 2016/5/1 0:00:00 ISBN号: 开本:16开 页数:522 版次:1-1 内容简介 \
本书是目前唯一地、系统化地、深入地讲解C语言模块化设计和编程的著作,将国内对C语言模块化编程的理论和实践都推向了一个新的高度。它不仅系统总结了模块化的系统设计方法,而且还高度呈现了模块化设计的思想和精髓。书中所有代码都来自于作者的工程代码库,不仅在工程实践中被证明行之有效,而且很多代码都经过了多次不断地优化,可复用、可借鉴。作者将对C语言核心技术和重要模块等知识点的讲解融入这些代码之中,从实践的角度演示了如何用模块化的方法进行大规模地工程实践。
\
全书共9章,以实际的工程代码为依托,从编译***、标准库等C语言核心技术特性,delog、index等各种重要模块;到各种模块和资源的整合,(进程)模块之间的共享和通信;再到模块化的系统设计方法论,完整展现了C语言的模块化设计思想和工程实践方法论。让读者在掌握模块化工程开发方法的同时,还能掌握各种常用工具和库的开发方法和源代码,从而更好地关注与思考系统本身的设计方法。\
目录
前言
第1章C语言的探讨 1
1.1C的编译***与文件引用 3
1.1.1一个小程序 3
1.1.2***与文件引用 5
1.2函数、数据与作用域 8
1.2.1全局函数与局部函数 8
1.2.2数据与数据的类别 9
1.2.3数据存储空间 11
1.3类型与操作 17
1.3.1基础类型及其操作和重定义 17
1.3.2结构体类型 20
1.3.3指针常量、指针与连续空间 21
1.3.4函数接口类型、可变参类型和执行跳转 26
1.4预处理操作 31
1.4.1C语言的词法与预处理 31
1.4.2宏判断的应用 37
1.4.3宏定义与模板函数 40
1.4.4预处理的杂项 43
1.4.5宏与代码的自动化构建 47
1.5小模块与函数内的模块化 52
1.5.1参数判断小模块 52
1.5.2goto与函数内的模块化 54
1.6结束语 63
第2章标准库、自有基础库与delog模块 64
2.1标准库 65
2.1.1assert.h、errno.h 66
2.1.2setjmp.h跨函数的跳转 67
2.1.3stdarg.h 69
2.1.4stdio.h 74
2.1.5stdlib.h 82
2.1.6string.h 86
2.1.7time.h 90
2.2构建自有基础库 91
2.2.1基础操作 93
2.2.2char的表 99
2.2.3UTF-8的基础表 106
2.2.4慢一点的字符串操作 112
2.3delog模块 118
2.3.1实体模块 118
2.3.2delog模块利用的系统库函数 119
2.4结束语 133
第3章make、工具与文档组织 134
3.1依赖与make 135
3.2自有工具库 146
3.2.1lex/flex的入门应用 147
3.2.2参数配置的子模块 153
3.2.3自己构造自己的小工具 175
3.3工程文档的组织 190
3.3.1makefile的补充设计 190
3.3.2模块目录与工具 193
3.3.3整体的工程目录 203
3.4结束语 211
第4章抽象逻辑与虚拟模块、索引模块 213
4.1抽象与宏 214
4.1.1抽象的描述 214
4.1.2抽象的对象与操作 217
4.1.3抽象的函数 221
4.2虚拟模块 228
4.2.1抽象类型的定义 228
4.2.2抽象操作和模板函数的组织方式 232
4.2.3模板函数的引用 234
4.3索引模块 241
4.3.1索引链及其基础操作 243
4.3.2索引模块的构建 246
4.3.3索引节点的存储单元 249
4.4结束语 252
第5章空间资源的组织 253
5.1资源的申请与利用 254
5.1.1动态空间的获取 254
5.1.2基于POSIX的共享空间 259
5.1.3基于POSIX的信号量 263
5.2连续空间的组织 268
5.2.1连续空间的组织信息 270
5.2.2通用数据空间类型_BUF与_P 272
5.3两个空间管理模块 278
5.3.1jx_buf模块 278
5.3.2jx_sharebuf 的子模块 301
5.3.3jx_sharebuf共享空间管理模块 309
5.4结束语 320
第6章数据的集合化组织 321
6.1集合化空间的组织 323
6.1.1集合的元素节点 324
6.1.2集合的组织 325
6.1.3节点空间的组织 329
6.2虚拟模块jx_sets 331
6.2.1jx_SetsType.h和jx_SetsDef.h 332
6.2.2模板函数头文件jx_SetsTemp.h 334
6.2.3模板化虚拟模块的实例 354
6.3集合化空间的扩展 359
6.3.1散列集合化空间的组织方式 359
6.3.2散列集合化空间的操作 363
6.3.3散列集合化空间的测试 370
6.4结束语 373
第7章复杂的数据集合化 375
7.1树集合化空间 376
7.1.1树的结构与基础操作 377
7.1.2树集合化空间管理模块 382
7.1.3相对复杂的树操作 392
7.2有向关系集合化空间 399
7.2.1有向关系结构与基础操作 400
7.2.2关系集合化空间的基础操作 404
7.3有向图的集合化空间 416
7.3.1模块的类型和定义 418
7.3.2模板函数 424
7.3.3可配置的遍历与搜索 432
7.4结束语 441
第8章进程与通信 442
8.1多进程的创建 443
8.1.1使用fork创建进程 444
8.1.2创建新会话 447
8.1.3调整文件的关联 449
8.2socket方式的进程间通信 452
8.2.1socket通信 452
8.2.2jx_socket模块 456
8.2.3会话与测试 469
8.3基于共享空间的进程间通信 472
8.3.1基于共享空间的队列模式 473
8.3.2基于共享空间的多端口模式 481
8.3.3多端口模式的应用场景 492
8.4结束语 496
第9章模块化的系统设计 497
9.1系统与模块 498
9.1.1什么是系统 498
9.1.2什么是模块 500
9.1.3模块化与关联 503
9.2模块化的分析与设计方法 506
9.2.1角色与任务 506
9.2.2框架与层次 509
9.2.3协同对接与系统整合 511
9.3C语言与模块化 512
9.3.1进程与模块 513
9.3.2模块封装与接口协议 516
9.3.3各种模块与抽象、复用 519
9.4结束语 521
编辑推荐 \
C语言模块化设计和编程的典范之作,高度呈现模块化设计的思想与精髓,系统总结模块化的系统设计方法
\
以大量可复用的仁工程代码为依托,深入地讲解了C语言的核心技术和重要模块,以及如何用模块化的方法进行大规模工程实践\
\
为什么要写这本书
因为工作原因,在算法优化、底层驱动、嵌入式系统设计等方面的软件编程时,一直使用C语言,而且很难有其他“更好”的选择。一方面,工作内容在客观上决定了无法利用更高级语言;另一方面,相对其他语言,在上述工作领域中持续使用C语言,使得工作效率更高(结合必要的shell脚本)。因此对于那些初入上述工作领域的工程师,我始终推荐C语言。通过本书,希望将个人的开发总结作为示例,给予新人作为参考。
C语言是一种比较早期的高级语言,其本身是模块化的,这使得通过C语言比较容易实现面向电子、计算、自控系统自身的模块化设计。目前更多的软件设计并非针对电子、计算、自控系统本身,例如,一个企业管理软件、一个网站商城界面等。这些软件设计,是基于应用者的思维,或者说人类正常思维模式而展开的。由此,这类设计使用面向对象语言会非常方便,但却导致过多关注计算机编程的教育,忽视了面向模块化编程方法的讲解。因此,本书将模块化系统设计的个人总结与C语言的讨论融合。希望本书能抛砖引玉,让上述工作领域的读者更好地关注与思考面向系统本身的设计方法。
本书特色
在本书写作的过程中,使用了个人工程代码库中的原型,并尽可能保证这些代码有一定的应用价值。为了在有限的章节尽可能给出一个较为完整的代码集合,因此,章节之间的代码存在一定依赖性,即,前序代码形成的模块,会被后续章节中所讨论的代码利用。
为了让工程经验欠缺的新人对C语言开发有更好的感性认识,本书在讨论问题和介绍代码中穿插了很多个人观点,这些观点并不是理论,也不一定是行业共识,只是从一个侧面的经验之谈,希望对读者有参考价值。
读者对象
电子、自控、计算机等相关专业的高年级本科、研究生
算法设计与优化工程师
嵌入式系统开发工程师
底层、中间件子系统开发工程师
其他对C语言编程、模块化系统设计感兴趣的人员
如何阅读本书
本书共九章,从C语言自身,一直探讨到(进程)模块之间的共享与通信。前八个章节,更多是工程和具体代码设计的讨论,而最后一个章节则是系统分析与系统设计方法的讨论。对于期望、正在从事系统整体规划、构架、设计的读者,建议首先了解最后一章内容,而对于欠缺系统分析经验的新进工程师,则建议从第1章开始阅读,同时建议对书稿中的代码进行上机验证,在执行反馈中了解本书的观点,并进行修正,形成自身工程代码库。
勘误和支持
由于水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正,期待能够得到你们的真挚反馈,在技术之路上互勉共进,我的邮箱是zsu_lucky@163.com。
致谢
感谢教育、指导、帮助、支持过我的老师、朋友及家人,使得我能持续多年在所喜爱的技术领域进行工作。
感谢机械工业出版社华章公司的杨福川和高婧雅,始终支持我的写作,是你们的鼓励和帮助引导我顺利完成这本书稿。
最后,特别感谢杨尚丽对本书的文句审核以及赵瑞源对本书代码的验证。
吉星
2016年3月\
本店所售图书均为正版书籍'
— 没有更多了 —
以下为对购买帮助不大的评价