打印

51单片机多文件C程序问题

[复制链接]
6102|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mcustudypeace|  楼主 | 2012-7-24 15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在学51单片机,用c语言编程。我建立的工程由多个文件构成。有一些常用器件的驱动程序(18B20,ds1302等)都是反复使用的,这些驱动程序由多个函数构成,那么,把这些函数体和函数声明都放在一个.h的头文件中(例如18B20drive.h)好,还是把函数声明放在.h头文件中( 例如18B20drive.h
),把函数体放在.c的文件中(例如18B20drive.c)好?这两种方式有何区别,哪种更好、更规范?请高手指教。

相关帖子

沙发
ayb_ice| | 2012-7-24 16:19 | 只看该作者
一个C对应一个H
DS1302.C
DS1302.H

使用特权

评论回复
板凳
joyme| | 2012-7-24 16:24 | 只看该作者
函数体肯定放在.c文件里,外部函数和全局变量才需要在.h里声明,内部函数及局部变量都在.c里
要不多个文件包含这个头文件就会重复编译这些函数体

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
mcustudypeace + 1
地板
yiucing| | 2012-7-24 16:55 | 只看该作者
函数声明放在.h头文件中,函数体放在.c的文件中

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
mcustudypeace + 1
5
zhuanghaiyang| | 2012-7-24 18:44 | 只看该作者
那使用时是不是只调用.h就可以使用.c里的函数了?

使用特权

评论回复
6
misra| | 2012-7-24 18:54 | 只看该作者
如果  你搞得东西的某些是非常固定的 那么  那些固定的东西 放到一个.h里面 也是不错的。比如  你看看那个UCOS 就是这样弄得。

当然  如果 不是很固定 那么 就 一个.c   对应一个.h

比如 那些  ARM芯片的官方库  都是这样弄得。

有些东西要搞得 死板  有些要活用   。关键是要自己好好思考。
否则 别人说好  自己却不知道好在哪里  也是个麻烦事

使用特权

评论回复
7
misra| | 2012-7-24 19:13 | 只看该作者
晕  .h里面当然不能放函数了   甚至 不要定义变量

为什么呢?
不好呗

使用特权

评论回复
8
jiabin1024| | 2012-7-25 09:24 | 只看该作者
赞成2L的说法

使用特权

评论回复
9
mcustudypeace|  楼主 | 2012-7-25 11:19 | 只看该作者
那么,请问多个文件都需要reg52.h这个头文件,是在每个.c文件都写#include<reg52.h>还是只在一个.c文件中写?

使用特权

评论回复
10
mcustudypeace|  楼主 | 2012-7-25 11:19 | 只看该作者
那么,请问多个文件都需要reg52.h这个头文件,是在每个.c文件都写#include<reg52.h>还是只在一个.c文件中写?

使用特权

评论回复
11
frlop| | 2012-7-25 13:35 | 只看该作者
10# mcustudypeace
可以建一个标准头文件如 stdafx.h 把通用性特别强的文件 如这个reg52。h,和一些宏定义 放进去。 个人习惯 仅供参考。

使用特权

评论回复
12
sedatefire| | 2012-7-25 15:43 | 只看该作者
“把这些函数体和函数声明都放在一个.h的头文件中”
这个要糟...

使用特权

评论回复
13
cuiyong0709| | 2012-7-25 16:31 | 只看该作者
一个C对用一个H文件,函数和全局变量放在C文件里,包含头文件、函数声明、变量声明、宏定义放在H文件里,这个C文件只包含对应H文件即可, 其他文件想用C文件里的函数,只需包含次C文件对应的H文件即可,包含C文件的话会出现重复定义错误,记住,一定要把C文件添加到工程中

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
mcustudypeace + 1
14
程序金左手| | 2012-7-25 16:39 | 只看该作者
H盘里我放的是岛国的片子。。。。:lol

使用特权

评论回复
15
mengdie_198599| | 2012-7-25 19:22 | 只看该作者
受益匪浅

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

39

帖子

0

粉丝