OpenEdv-开源电子网

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

谁知道keil .c 和.h 文件的大概的编译过程

[复制链接]

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
发表于 2018-8-16 16:57:53 | 显示全部楼层 |阅读模式
谁知道keil   .c 和.h    文件的大概的编译过程,我们都知道一个模块的函数调用另一个模块的函数,是调用他的.h文件 ,那么这么推断的话,keil应该是把所有的.h文件全都编译了,然后再去编译.c文件,这么想对吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4521
金钱
4521
注册时间
2018-5-11
在线时间
946 小时
发表于 2018-8-17 19:14:38 | 显示全部楼层
本帖最后由 warship 于 2018-8-17 19:21 编辑

楼上正解,这些基本问题还是多看看书吧之所以叫头文件,就是这些.h是放在.c的头上的。
如果一个.h文件谁都不包含它,则它没有任何用处,也不会编译。
谁包含它预编译器就把它拼(可简单理解为复制粘贴)在头部参加编译。

我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 1 反对 0

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-8-17 08:25:09 | 显示全部楼层
.h文件是用来声明变量、函数的,所有你想从.c里面拿出来到main里用的东西,.h里都定义了一遍,所以对应的.h文件肯定比.c先编译...至于是不是所有的.h文件先编译 我不是很清除,也有可能拿一个编一个?
回复 支持 1 反对 0

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2018-8-16 19:52:26 | 显示全部楼层
我是这样认为的
业精于勤荒于嬉;行成于思毁于随!
回复 支持 反对

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
 楼主| 发表于 2018-8-17 08:15:53 | 显示全部楼层
1208 发表于 2018-8-16 19:52
我是这样认为的

然后呢????
回复 支持 反对

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2018-8-17 10:19:25 | 显示全部楼层

有可能你说得是对的,也不用太纠结
业精于勤荒于嬉;行成于思毁于随!
回复 支持 反对

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
 楼主| 发表于 2018-8-17 11:09:35 | 显示全部楼层
本帖最后由 ssssssssssss 于 2018-8-17 11:11 编辑
323232 发表于 2018-8-17 08:25
.h文件是用来声明变量、函数的,所有你想从.c里面拿出来到main里用的东西,.h里都定义了一遍,所以对应的.h ...

编译打印是编译的。c
44.png
回复 支持 反对

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-8-17 11:12:59 | 显示全部楼层
ssssssssssss 发表于 2018-8-17 11:09
编译打印是编译的。c

总不能把所有的东西都打印出来给你看吧
猪猪熊呢?
回复 支持 反对

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
 楼主| 发表于 2018-8-17 11:20:52 | 显示全部楼层
323232 发表于 2018-8-17 11:12
总不能把所有的东西都打印出来给你看吧

总之人家编译的是。c
回复 支持 反对

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2018-8-17 12:34:02 | 显示全部楼层
看看编译原理,先要预编译,把宏定义展开,碰到“#include”就会把 .h 文件加载到当前位置,然后再来编译
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 15:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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