内容介绍
C语言是一个“古老”的编程工具。在嵌入式系统、自控系统及计算机底层操作系统、数据处理中间件等系统开发中仍然是优先选择的开发工具。不同于很多更“高级”的编程语言,如Java,Python等,C语言是面向硬件特性,基于模块的一种编程语言。采用更“高级”语言的编程思维并不能实现有效的C程序设计。《C高级编程:基于模块化设计思想的C语言开发》是从C语言的特点,适合C语言开发的设计目标的特点出发,阐述一类C语言的开发方式,并通过设计具体模块,依次展开讨论。如果你想有效地使用C语言,在系统设计中灵活地应用模块化设计思想,本书是一个很不错的参考。章节目录
前 言 第1章 C语言的探讨 1 1.1 C的编译链接与文件引用 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.1 C语言的词法与预处理 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.2 goto与函数内的模块化 54 1.6 结束语 63 第2章 标准库、自有基础库与delog模块 64 2.1 标准库 65 2.1.1 assert.h、errno.h 66 2.1.2 setjmp.h跨函数的跳转 67 2.1.3 stdarg.h 69 2.1.4 stdio.h 74 2.1.5 stdlib.h 82 2.1.6 string.h 86 2.1.7 time.h 90 2.2 构建自有基础库 91 2.2.1 基础操作 93 2.2.2 char的表 99 2.2.3 UTF-8的基础表 106 2.2.4 慢一点的字符串操作 112 2.3 delog模块 118 2.3.1 实体模块 118 2.3.2 delog模块利用的系统库函数 119 2.4 结束语 133 第3章 make、工具与文档组织 134 3.1 依赖与make 135 3.2 自有工具库 146 3.2.1 lex/flex的入门应用 147 3.2.2 参数配置的子模块 153 3.2.3 自己构造自己的小工具 175 3.3 工程文档的组织 190 3.3.1 makefile的补充设计 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.1 jx_buf模块 278 5.3.2 jx_sharebuf 的子模块 301 5.3.3 jx_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.1 jx_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.2 socket方式的进程间通信 452 8.2.1 socket通信 452 8.2.2 jx_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.3 C语言与模块化 512 9.3.1 进程与模块 513 9.3.2 模块封装与接口协议 516 9.3.3 各种模块与抽象、复用 519 9.4 结束语 521
使用说明
1、下载并解压,得出pdf文件教程频道为您提供秦时明月世界噬牙狱断水怎么打 噬牙狱断水打法攻略解决方案,还有更多全面的秦时明月世界软件教程手册,无论是新奇小软件的操作还是专业软件的使用技巧,教程都会为您解疑释惑。
现在很多人都在使用搜狗高速浏览器进行上网,该浏览器支持通过网络收藏夹来方便用户收藏喜欢的网址,下面小编就为你带来关于网络收藏夹使用教程。
黎明觉醒食谱配方有哪些?游戏中设定了12项生存指标,玩家的角色会饿、会冷、会累,当发生这些状态的时候生命值就会减少,这个时候就需要使用食物来回复生命值,每一种食物都是有
不朽之旅学士之后转职路线是什么?这是近期很多玩家都在讨论的焦点话题,不少玩家都想知道学士之后的转职录像是怎么样的,今天就为大家带来关于这个方面的具体资料,通过下面的文
黎明觉醒冷却枪管有什么用?冷却枪管是一个枪械武器的配件,游戏中会有很多类型的武器配件,这些配件各有不同的作用,可以弥补枪械的一些缺陷。那么黎明觉醒中冷却枪管的作用是什
支付宝庄园小课堂9月17日的问题是,洗牙会把牙齿的牙釉质洗掉吗?正确回答就可以领取180g饲料喂养小鸡哦。一起来看看吧。
教程频道为您提供星露谷物语怎么找罗宾建水井 水井建造要求及消耗介绍解决方案,还有更多全面的星露谷物语软件教程手册,无论是新奇小软件的操作还是专业软件的使用技巧,教程都会为您解疑释惑。
来不及了快上车手游怎么更换战车?很多玩家都非常喜欢这款十分魔幻的手游,近期不少玩家都在讨论,该如何更换战车,今天就为大家带来一篇关于这个方面的具体资料,通过下面的文章
黎明觉醒托腮板有什么用?游戏中有各种各样的枪械配件,托腮板就是其中一种,不过它是只能装在狙击枪上的一个配件,它的作用还是很大的。那么黎明觉醒中托腮板的作用是什么呢?还
黎明觉醒怪物有哪些?在这场末日灾难中不仅有各种各样的幸存者存在,还会有各种不同的怪物,怪物会攻击玩家,玩家要击杀这些怪物生存下去,击杀怪物也会有资源掉落。那么黎明觉醒