OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8207|回复: 17

新手上道,想问一下c文件和h文件的关系什么啊?他们有什么联系和区别啊。为什么一个c文件伴随一个h文件。

[复制链接]

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-1-2
在线时间
0 小时
发表于 2014-1-3 11:19:08 | 显示全部楼层 |阅读模式
新手上道,想问一下c文件和h文件的关系什么啊?他们有什么联系和区别啊。为什么一个c文件伴随一个h文件。谢谢了!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

44

主题

225

帖子

0

精华

高级会员

Rank: 4

积分
660
金钱
660
注册时间
2013-11-22
在线时间
131 小时
发表于 2014-1-3 13:33:26 | 显示全部楼层
分而治之是为了便于管理, 一个C文件可以分成几个H文件分别包含,一个H文件也可以包含几个C文件,但这样的代码风格不太好,显得关系太凌乱了,不利于管理。最好是一一对应。
通常一个大的工程文件都有几个源文件(.c文件)一起参与编译,然后链接所有包含进来的库文件(.h文件),最后生成一个目标文件用来运行。

C语言规定一般的函数(中断函数之类的除外,它们有自己的调用机制)若在主函数之前定义就不需要声明,在主函数之后定义就需要声明,为了方便别人调用,统一将你所写的具有特定功能类型的函数集合写在一个源文件(.c文件)当中,便于后期的维护与管理,所有函数的实现都在源文件(.c文件)当中,所有允许被调用的函数的声明都写在库文件(.h文件)当中。只不过通常将它们的文件名写成一样,不写成一样也可以调用,只不过那样的话看起来会显得很凌乱。
这样当你需要调用里面的函数的时候include进去就行了,但是为了避免重复声明,通常库文件的开始和结尾总会写成这种结构。
#ifndef       XXXX 
#define        XXXX
……
……
……
#endif
如果之前没有定义XXXX,就定义XXXX,这样所有需要调用的函数只会声明一次。
回复 支持 1 反对 1

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-1-3 11:29:26 | 显示全部楼层
.c是实现各种功能的函数集中地.
.h则是这些函数对外的声明.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

76

主题

355

帖子

0

精华

高级会员

Rank: 4

积分
671
金钱
671
注册时间
2012-9-19
在线时间
5 小时
发表于 2014-1-3 12:16:17 | 显示全部楼层
.c 是个日记本,里面有记录每一天的日记, 。h 是个目录表,你想查找某天的日记,你看目录表就知道日记写在第几页,第几段,。。一个日记本带有一个目录表。。一一对应。
具有资深STM32点灯技术,
回复 支持 反对

使用道具 举报

头像被屏蔽

52

主题

440

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1237
金钱
1237
注册时间
2013-1-9
在线时间
151 小时
发表于 2014-1-3 15:23:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

52

主题

440

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1237
金钱
1237
注册时间
2013-1-9
在线时间
151 小时
发表于 2014-1-3 15:25:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-9-3
在线时间
3 小时
发表于 2014-1-3 15:26:55 | 显示全部楼层
这里好热闹啊
回复 支持 反对

使用道具 举报

头像被屏蔽

52

主题

440

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1237
金钱
1237
注册时间
2013-1-9
在线时间
151 小时
发表于 2014-1-3 15:27:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-1-2
在线时间
0 小时
 楼主| 发表于 2014-1-3 16:10:14 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢原子大哥
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-1-2
在线时间
0 小时
 楼主| 发表于 2014-1-3 16:10:50 | 显示全部楼层
回复【3楼】敌害:
---------------------------------
谢谢了。
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-1-2
在线时间
0 小时
 楼主| 发表于 2014-1-3 16:11:38 | 显示全部楼层
回复【4楼】zhp:
---------------------------------
万分感谢
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-1-2
在线时间
0 小时
 楼主| 发表于 2014-1-3 16:12:21 | 显示全部楼层
回复【5楼】hexboot:
---------------------------------
谢谢了!
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-1-2
在线时间
0 小时
 楼主| 发表于 2014-1-3 16:16:52 | 显示全部楼层
回复【4楼】zhp:
---------------------------------
能在问你一个问题吗?当我看别的程序时,遇到不知道的库函数,我应该从哪了解这个库函数啊?有没有一本书是专门讲各种库函数的使用,功能的?我刚学stm32什么都不懂,谢谢你的解答。
回复 支持 反对

使用道具 举报

17

主题

470

帖子

1

精华

高级会员

Rank: 4

积分
718
金钱
718
注册时间
2013-11-23
在线时间
0 小时
发表于 2014-1-3 18:10:17 | 显示全部楼层
回复【13楼】灰太狼:
---------------------------------
《STM32固件库使用手册》  官方的中文翻译版,对照查很清楚
回复 支持 反对

使用道具 举报

44

主题

225

帖子

0

精华

高级会员

Rank: 4

积分
660
金钱
660
注册时间
2013-11-22
在线时间
131 小时
发表于 2014-1-4 16:57:02 | 显示全部楼层
楼上说的对
回复 支持 反对

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13122
金钱
13122
注册时间
2012-11-26
在线时间
3813 小时
发表于 2014-1-4 18:30:18 | 显示全部楼层
C是内容

H是对外调用接口
学无止境
回复 支持 反对

使用道具 举报

25

主题

157

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-11-24
在线时间
5 小时
发表于 2014-1-4 23:24:39 | 显示全部楼层
回复【14楼】hechao3225:
---------------------------------
老大,那儿下这个资料啊?
回复 支持 反对

使用道具 举报

17

主题

470

帖子

1

精华

高级会员

Rank: 4

积分
718
金钱
718
注册时间
2013-11-23
在线时间
0 小时
发表于 2014-1-5 11:50:56 | 显示全部楼层
给楼主传一个吧,原子的配套资料里都有

STM32固件库使用手册的中文翻译版.pdf

2.79 MB, 下载次数: 915

回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-11 10:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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