.c与.h文件关系问题

[复制链接]
 楼主| 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楼的方法很值得借鉴
xsgy123 发表于 2013-1-30 14:02 | 显示全部楼层
无冕之王 发表于 2013-1-29 23:42
.h是声明
.c是实现

这应该是本质区别了
suhaocong 发表于 2013-1-30 23:52 | 显示全部楼层
学习了
suhaocong 发表于 2013-1-30 23:52 | 显示全部楼层
学习了
vivilzb1985 发表于 2013-2-5 14:53 | 显示全部楼层
2楼言简意赅,3楼说的比较详细的,值得借鉴的
未来梦 发表于 2013-11-11 10:14 | 显示全部楼层
学习了
vivilzb1985 发表于 2013-11-25 20:09 | 显示全部楼层
.h文件是对.c文件的一个声明的,每一个.c文件中的函数都在.h文件中申明一下的,便于函数的调用的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

2496

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部