打印

.c与.h文件关系问题

[复制链接]
2038|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yybj|  楼主 | 2013-1-29 23:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前系统中有多个自定义的.h文件和.c文件。

如sd.c;sd.h;uart.h等待,
1在main.c以及sd.c都要使用uart.h,如果我仅main.h中#include "uart.h",编译时会提示 sd.c中的"uart.h"被调用函数倍 显示(implicit)申明;如果在sd.h中#include "uart.h",就会报其函数重复定义。

2由于mian.c中的函数过多,想继续将main.c分解,如分解成myfun.c,同样需要调用"uart.h"中函数;如果在myfun.c中#include "uart.h",就会对uart.h中函数报 重复定义的错误。

请问 如何处理.c以及.h文件间的关系?

相关帖子

沙发
无冕之王| | 2013-1-29 23:42 | 只看该作者
.h是声明
.c是实现

使用特权

评论回复
板凳
baidudz| | 2013-1-29 23:54 | 只看该作者
在语法上明确区分:定义和声明的不同

C里是支持一处定义,多处声明的。

我习惯的做法是:

每一组相关的功能组织到一个C和H文件

然后,整个项目再组织一个整体的H文件,用来处理头文件之间的次序

然后,所有的应用都只包含项目中的那个H文件即可

使用特权

评论回复
地板
hsbjb| | 2013-1-30 13:56 | 只看该作者
3楼的方法很值得借鉴

使用特权

评论回复
5
xsgy123| | 2013-1-30 14:02 | 只看该作者
无冕之王 发表于 2013-1-29 23:42
.h是声明
.c是实现

这应该是本质区别了

使用特权

评论回复
6
suhaocong| | 2013-1-30 23:52 | 只看该作者
学习了

使用特权

评论回复
7
suhaocong| | 2013-1-30 23:52 | 只看该作者
学习了

使用特权

评论回复
8
vivilzb1985| | 2013-2-5 14:53 | 只看该作者
2楼言简意赅,3楼说的比较详细的,值得借鉴的

使用特权

评论回复
9
未来梦| | 2013-11-11 10:14 | 只看该作者
学习了

使用特权

评论回复
10
vivilzb1985| | 2013-11-25 20:09 | 只看该作者
.h文件是对.c文件的一个声明的,每一个.c文件中的函数都在.h文件中申明一下的,便于函数的调用的

使用特权

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

本版积分规则

175

主题

2496

帖子

1

粉丝