图书简介:
第1章 C语言开发环境 1
第2章 简单的秒值-时间值转换 6
第3章 基于数组的秒值-时间值转换 14
第4章 基于函数的秒值-时间值转换 17
第5章 基于枚举的秒值-时间值转换 22
第6章 基于指针的秒值-时间值转换 27
第7章 基于结构体的秒值-时间值转换 38
第8章 基于结构体指针的秒值-时间值
转换 41
第9章 基于多文件的秒值-时间值转换 45
第10章 基于多媒体定时器的电子钟设计 59
第11章 电子钟的API设计与应用 73
第12章 循环队列的API设计与应用 86
第13章 协议处理的API设计与应用 100
第14章 模拟从机命令接收与数据发送 117
第15章 模拟主机命令发送与数据接收 138
附录A C语言软件设计规范
(LY-STD001-2019) 153
参考文献 160
展开
市面上的C语言教材非常多,大多数初学者学习C语言的方法是买或借一本C语言教材,先学习语法,甚至深究其中的语法,部分有实战意识的初学者会自行搭建开发环境,然后根据书中的例子编写一些程序。按照这种方法学完后通常会出现一个问题,似乎掌握了一些C语言知识,也可以编写一些小程序,但是无法使用C语言解决实际问题,例如,编写一些实用算法(如循环队列等),或编写单片机程序。
为什么会出现这样的问题?我们先分析一下唐僧团队取经历程,师徒四人西天取经,沿途收拾妖怪只是为了解决障碍,而不是要将天下的妖怪全都消灭。因此,孙悟空并没有沉迷于要把所有妖怪斩草除根,托熟人、找关系、搬救兵,将这些妖怪收走也可以。同理,在学习C语言时,要将其视为工具,目的是解决现实中的具体问题,在解决问题的过程中,遇到不懂的知识点便去有针对性地学习,而且不深陷于知识点中,问题解决后就应尽快返回到“取经之路”上。
本书是一本介绍C语言程序设计的书,严格意义上讲,也是一本实训手册。本书基于Visual Studio Community 2019集成开发环境,第1章介绍开发环境的安装和配置,磨刀不误砍柴工,磨好开发环境这把“刀”,才能高效地砍下第2~15章这些“柴”。其中,第2章介绍秒值-时间值转换的基础实验。第3~9章分别以数组、函数、枚举、指针、结构体、结构体指针和多文件的方式实现第2章的功能,这种通过不同语法完成相同实验的方式,有助于读者把精力聚焦在C语言的语法上。第10~11章引入了多媒体定时器的概念,不仅要求能够将秒值转换为时间值,还要让秒值递增计数,并通过printf函数每秒打印一次时间值。掌握了这些基本语法后,就可以尝试解决现实中的一些具体问题。第12章是一个算法设计的实例(循环队列的API设计与应用)。第13~15章是通信协议的实例(通信协议)。
第2~11章实验侧重于C语言基础,其中通过不同语法完成相同实验内容的方式,还在“卓越工程师培养系列”的其他语言类教材中得以体现,如Android、WinForm、MFC和Qt。在学习Java、C#、C++等编程语言时,同样是基于秒值-时间值转换实验。第12~15章实验侧重于应用,其中,第12章实验中的循环队列常常应用在串口通信中,如单片机(如STM32F1和STM32F4等)和DSP(如TMS320F28335等)的串口收发数据,在“卓越工程师培养系列”的单片机和DSP等教材中将会看到本书第12章所介绍的API函数的进一步应用。第13~15章是通信协议的API设计与应用,该协议基于主从机通信,从机作为执行单元,用于处理一些具体的事务,而主机(如Windows、Linux、Android和emWin平台等)常与从机进行交互,向从机发送命令,或处理来自从机的数据,在主机与从机的通信过程中,交互媒介就是通信协议,在“卓越工程师培养系列”的一系列涉及主从机通信的教材中,又可以看到这三章的影子。
本书的特点如下。
1.以手把手的方式引导读者开展实验,通过实验原理介绍、实验步骤拆解和剖析,让读者快速入门;“本章任务”是实验的延伸和拓展,让读者通过实战巩固实验的知识点;“本章习题”用于检验读者是否掌握了书中的知识点。
2.“实验原理”详细讲解每个实验所涉及的知识点,未涉及的知识点基本不予介绍,以便于初学者快速掌握C语言程序设计的核心要点。
3.将C语言规范贯穿于整个程序设计过程中,如排版和注释规范、文件和函数命名规范,以及项目架构设计等。
4.配有丰富的资料包,包括C语言例程、软件包、PPT和视频等,资料包会持续更新,下载链接可通过微信公众号“卓越工程师培养系列”获取。
参与本书编写的有汪天富、董磊、郭文波、曾凡均、彭芷晴。电子工业出版社张小乐编辑为本书的出版做了大量的工作。特别感谢深圳大学生物医学工程学院、深圳市乐育科技有限公司和电子工业出版社的大力支持。在此一并致以衷心的感谢!
由于编者水平有限,书中难免有不成熟和错误的地方,恳请读者批评指正。读者反馈发现的问题、索取相关资料或遇实验平台技术问题,可发信至邮箱:ExcEngineer@163.com。
展开