打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
资深单片机工程师讲单片机的模块化编程


当一个项目小组做一个相对比较复杂的工程时,就需要小组成员分工合作,一起完成项目,意味着不再是某人独自单干,而是要求小组成员各自负责一部分工程。比如你可能只是负责通讯或者显示某一块,这个时候,就应该将自己的这一块程序写成一个模块,单独调试,留出接口供其它模块调用。最后,小组成员都将自己负责的模块写完并调试无误后,由项目组长进行综合调试,像这些场合就要求程序必须模块化。模块化的好处非常多,不仅仅是便于分工,它还有助于程序的调试,有利于程序结构的划分,还能增加程序的可读性和可移植性。


模块化编程的说明


说明一:模块即是一个.c和一个.h的结合,头文件(.h)是对该模块的声明。

说明二:某模块提供给其他模块调用的外部函数以及数据需在所对应的.h文件中冠以extern关键字来声明。

说明三:模块内的函数和变量需在.c文件开头处冠以static关键字声明。

说明四:永远不要在.h文件中定义变量。


先解释一下说明中的两个关键词:定义和声明。相信读者都是学过C语言的,本应该对这两个词理解的很透彻,可笔者在培训时发现,好多人都搞不清楚,都是凭着感觉写的,高兴了就用定义,不高兴了就用声明,这样做当然是不对的,换句话说是错的。


强势X入广告:什么是定义和声明?

所谓的定义就是(编译器)创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名或者对象名。但注意,这个名字一旦和这块内存匹配起来(可以想象是这个名字嫁给了这块空间,没有要彩礼啊),它们就同生共死,终生不离不弃,并且这块内存的位置也不能被改变。一个变量或对象在一定的区域内(比如函数内)只能被定义一次,如果定义多次,编译器会提示你重复定义同一个变量或对象。


什么是声明?声明确切的说应该有两重含义:

(1)告诉编译器,这个名字已经匹配到一块内存上了(伊人已嫁,吾将何去何从?何以解忧,唯有稀粥),下面的代码用到变量或对象是在别的地方定义的。声明可以出现多次。

(2)告诉编译器,我这个名字我先预定了,别的地方再也不能用它来作为变量名或对象名。比如你在图书馆自习室的某个座位上放了一本书,表明这个座位已经有人预订,别人再也不允许使用这个座位。其实这个时候你本人并没有坐在这个座位上。这种声明最典型的例子就是函数参数的声明,例如:void fun(int i, char c)。


那他们的区别也很清晰了。记住,定义声明最重要的区别:定义创建了对象并为这个对象分配了内存,声明没有分配内存(一个抱伊人,一个喝稀粥,^_^)。


此文摘自刘平老师最新发表的新书《STC15单片机实战指南(C语言版)》


《STC15单片机实战指南(C语言版)》

本书从工程实践角度出发,整理了作者在单片机学习、工作实践中的大量经验,旨在引领读者如何熟练应用STC公司最新的增强型1T单片机。本书共计20章,章节由浅入深,由点到面。首先从最基本的概念、开发工具入手,牵手读者走进单片机的大门;之后在带领读者深入浅出学习STC15单片机内部资源(如定时器、中断、串口)和经典外围外设(如LED、数码管、按键、液晶、点阵、EEPROM、温度传感器、时钟、红外线解码、收音机、触摸按键、A/D、D/A)的同时,还穿插了一些C语言和基础电路;其后又扩展了一些工程项目中常用的知识点,如模块化编程、PCB、实时操作系统、库开发等;最后以两个工程项目为例,手把手教大家如何DIY一个属于自己的梦想“玩具”和表白“神器”——多功能收音机和四轴飞行器,继而听着收音机“飞”出单片机的大门。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C351编程(1)单片机C语言中文编程方法探讨
模块化编程
单片机C语言编程心得
推荐一篇软件编程极佳的文章,值得读一读
单片机编程软件很简单(三),keil单片机编程软件双数据指针+二进制
STC单片机内部扩展RAM的应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服