找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1356|回复: 8
打印 上一主题 下一主题
收起左侧

51单片机C语言多文件编程疑问

[复制链接]
跳转到指定楼层
楼主
ID:647261 发表于 2023-6-25 11:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚开始学单片机编程,目前是学51的,用proteus仿真学到做万年历的时候,时钟芯片+LCD1602+按键更改时间+温度芯片,这样下来,程序太长了,于是用到了多文件编程。

用多文件编程时,有些疑问,网上也没有找到答案,特来求助各位大佬:
1.网上说的标准多文件编程,都是一个c文件配套一个h文件。
这样的话,main文件要include一堆的h文件。那么,用一个h文件做所有c文件的声明,main文件不就只需要include一个h文件了。
已测试了编译通过,仿真正常。不知道这样做会有什么缺点呢?
2.我看了公司同事的代码,是直接把子函数写在h文件上的,这样看起来好像不用放一堆文件了。

不知道这种写法是不是常用的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:277550 发表于 2023-6-25 14:08 | 只看该作者
2和1的后半部分,同理的。

自己写,怎么省事、又容易维护,就怎么来。

多人协作,就按标准来写。
回复

使用道具 举报

板凳
ID:752974 发表于 2023-6-25 15:28 | 只看该作者
多文件编程的有点是便于维护,更改和移植;都放在一个文件里做也是可以的,每个人的风格不同而已。
回复

使用道具 举报

地板
ID:1080935 发表于 2023-6-25 15:35 | 只看该作者
分不分自己定,怎么分自己定,但不是好习惯,建议按标准来,方便移植传承。
回复

使用道具 举报

5#
ID:123289 发表于 2023-6-25 16:07 | 只看该作者
1、每个功能需要一段程序来实现,这是少不了的,能改变的只是这段程序放在何处。
2、将成熟的程序,做一个【标本】,统一放在自己认为合适的地方,形成一个库,是个不错的主意。这样下次用到它,从【标本】库,调用它即可,不用再写一遍。
同样的道理,变量也一样:
例如:但你认识 P0,但KELL不认识 P0,只认识CPU中定义的地址 80H,你写程序传值32给 P0,KELL却说错了,我不认识P0。
这时,就需要你事先告诉KELL,P0就是地址80H,这样KELL才能接受P0了。
同样还有:P1、P2、P3、TCON、TMOD……,一大堆东东。
其实,所有人都会遇到这种情况,于是早有人将 [P1、P2、P3、TCON、TMOD……] 是什么,做了个定义,并且打了个包,美其名曰:【XX.h】。
于是,用一句 include XX.h 就将这些变量,通通告知KELL平台了。
明白这个道理,你就明白一半了。
include 可以将前人给出的,你需要用到的变量……的定义,预先告知KELL平台,认防KELL不认识。
回复

使用道具 举报

6#
ID:647261 发表于 2023-6-25 16:25 | 只看该作者
感谢以上各位
大致了解了,写法都没什么毛病,就是多人协作的时候可能不太好
回复

使用道具 举报

7#
ID:596109 发表于 2023-6-25 16:56 | 只看该作者
简单的肯定没必要多文件,但是规模上来后,一个文件多烦,找都找不到
回复

使用道具 举报

8#
ID:612392 发表于 2023-6-25 18:35 | 只看该作者
有一些标准化的程序,或者称为库,可以单独的编在一个.h头文件里,方便后续二次开发
回复

使用道具 举报

9#
ID:468209 发表于 2023-6-25 20:38 来自手机 | 只看该作者
多文件编写 我就直接写.h上  又h又c的觉得很乱
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表