本书主要讲解如何将集成开发环境、设计模式、极限编程、测试驱动开发、重构、持续集成这些现代编程方法应用到C语言的嵌入式开发中去。即将服务器站点中的通用设计方法、工具的使用方法、开发方式等逐一“翻译”成为可以在C语言嵌入式开发过程中使用的方法。
第1章 概要1
1.1 现在C依然很热门1
1.2 使用C进行嵌入式开发的特点3
1.3 本书的目标5
1.3.1 C与集成开发环境5
1.3.2 C与设计模式6
1.3.3 C与极限编程7
1.3.4 C与现代开发方式9
1.4 总结11
第2章 搭建开发环境13
2.1 概要13
2.2 获取Linux13
2.3 在Windows PC上搭建环境14
2.4 安装Linux20
2.4.1 准备工作20
2.4.2 制作安装介质21
2.4.3 安装Xubuntu24
2.5 安装Eclipse29
2.5.1 安装Java29
2.5.2 安装Eclipse30
2.5.3 安装其他工具33
2.6 Eclipse的基本操作34
2.6.1 Hello, World34
2.6.2 视图38
2.6.3 工程、工作区和透视图38
2.7 Eclipse的功能41
2.7.1 可视化调试41
2.7.2 导航器48
2.7.3 代码补全51
2.7.4 宏展开53
2.7.5 本地代码历史54
2.7.6 TODO注释55
2.7.7 与外部编辑器协作56
2.8 总结58
第3章 C语言与面向对象59
3.1 概要59
3.2 C的模块化与面向对象59
3.2.1 C与模块化60
3.2.2 使用结构体将数据结构与代码块分离62
3.2.3 使用C进行面向对象编程66
3.2.4 面向对象与多态性75
3.2.5 继承76
3.2.6 封装79
3.2.7 虚函数表80
3.2.8 非虚函数82
3.3 总结84
第4章 C语言与设计模式85
4.1 状态模式85
4.1.1 状态迁移图85
4.1.2 状态迁移表89
4.1.3 面向对象的状态模式90
4.1.4 多个状态集合相互关联的情况93
4.1.5 状态模式与内存管理94
4.2 模板方法模式95
4.2.1 返回非int值99
4.2.2 处理其他资源100
4.2.3 上下文107
4.3 观察者模式114
4.4 职责链模式125
4.5 访问者模式128
4.6 总结134
第5章 C语言与重构135
5.1 概要135
5.2 测试驱动开发136
5.3 TDD入门137
5.3.1 设置Eclipse137
5.3.2 初次测试驱动开发142
5.3.3 测试静态函数147
5.4 重构150
5.4.1 对外接口150
5.4.2 重构与投资150
5.5 TDD实践篇151
5.5.1 怪兽方法152
5.5.2 C语言的Mock测试162
5.5.3 完成重构182
5.5.4 获取代码覆盖率186
5.6 总结188
第6章 持续集成与部署191
6.1 概要191
6.2 持续集成的前提192
6.2.1 软件配置管理工具192
6.2.2 构建工具192
6.2.3 Bug跟踪系统(BTS)193
6.3 引入CI服务器193
6.4 CI入门196
6.4.1 本次CI的自动化目标196
6.4.2 Scons构建脚本197
6.4.3 gcovr的安装199
6.4.4 构建200
6.4.5 提交至SCM202
6.4.6 创建Jenkins任务203
6.5 内存Bug大作战214
6.5.1 安装214
6.5.2 运行Valgrind214
6.5.3 Valgrind可以检测出的错误215
6.5.4 Valgrind中检测出的内存错误的特点与对策220
6.5.5 在Jenkins中使用Valgrind221
6.6 CI实践篇228
6.6.1 Microchip工具229
6.6.2 构建内容230
6.6.3 分割构建文件234
6.6.4 独立构建服务器240
6.6.5 设置自动构建计划247
6.7 总结249
附录A 示例代码251
A.1 注意事项251
A.2 添加C99标准251
A.3 在Eclipse中导入示例代码252
A.3.1 解压示例代码压缩文件252
A.3.2 Eclipse中新建空白工程252
《雨鼓》内容简介:15世纪,奥斯曼帝国出兵围攻阿尔巴尼亚的城堡,帕夏率领千军万马驻扎城脚,千奇百怪的攻城方式轮番上演,百转千
再生利用|藝術修復|自然材料|生態住家中古公寓、透天、獨棟、古厝、三合院的綠色變身改造!採光、通風、有機的家--綠色版〔
《从平面到立体:设计师必备的折叠技巧》在把诸如织物、纸板、塑料、金属等二维片材制作成三维形态时,许多设计师都会采用折叠这一
不可知的未来正向我们涌来,在IT技术变革比人们换手机还勤的时代里,一切更新都显得那么平常而频繁。这一切的策源地――硅谷,也
社会经济的发展,使得移动通信技术日新月异。本书系统、全面地介绍了移动通信的相关概念、关键技术以及一些典型的移动通信系统,
Thisbookpresentsanintegratedcollectionofrepresentativeapproachesforscalingupmach...
《论语译注》内容简介:从汉代郑玄为《论语》做注开始直到当代,《论语》的注本层出不穷,其中朱熹的《论语集注》、刘宝楠的《论语
《BeginningJavaObjects中文版从概念到代码(第2版)》是关于软件对象和Java的,但并不是纯粹地介绍Java语言,而是强调如何从对象模
《风之又三郎》内容简介:一个大风天,学校里来了一个奇怪的转校生。班上的孩子们怀疑他是风神的孩子,对他百般试探捉弄,最终那孩
《朕的圆明园》内容简介:这是一本结合典籍与历史图片,介绍雍正至咸丰五位皇帝与圆明园关系的历史书籍。他们中的雍正和道光就去世
《HTML 5开发精要与实例详解》内容简介:这是一本以综合性案例为导向并辅之以精要知识点讲解的HTML 5实战教程。内容分为两大部分:
《十九世纪文学主流Ⅱ:德国的浪漫派》内容简介:勃兰兑斯在哥本哈根大学的讲演汇编成《十九世纪文学主流》,纵论法、德、英诸国浪
ChristianSirianomadeheadlinesastheyoungestdesignertowinBravoshighlyratedrealitys...
《生成式AI:人工智能的未来》内容简介:一本书全面了解生成式AI的发展与创作能力,并为我所用。20世纪60年代,AI的概念就被提出,
《明德学校史话》内容简介:本书依据宏富的史料,记述了明德学校艰苦卓绝的办学历程及其辉煌的办学业绩,展示了胡元倓等一批明德人
《时光不再,惊羡你温柔如初》内容简介:《时光不再,惊羡你温柔如初》收录了朱自清的散文名篇,共分三部分,写生活中平凡的景色与
《2020区块链漫游指南》内容简介:本书是一本区块链技术的学习指南。本书各章命名为“星系”,共分为6个星系,围绕区块链概念及其技
全国计算机等级考试二级教程:公共基础知识(2008年版) 内容简介 本书是根据教育部考试中心*新颁布的《全国计算机等级考试二级公共基础知识考试大纲(2007年版...
数学之美-第二版 本书特色 几年前,“数学之美”系列文章原刊载于谷歌黑板报,获得上百万次点击,得到读者高度评价。 正式出版前,吴军博士几乎把所有文章都重写了一遍...
《漫步,遇见地道的台北生活》内容简介:本书是介绍轻松愉快的台湾徒步旅游书。作者带你逛仁爱路林荫大道、PEKOE杂货铺、东区茶街、