OpenEdv-开源电子网

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

一直对keil是如何编译.C和.H文件的比较模糊,有时候添加头文件就是凭感觉,有没有相关的讲解呢?

[复制链接]

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
发表于 2022-11-3 09:44:21 | 显示全部楼层 |阅读模式
1金钱
一直对keil是如何编译.C和.H文件的比较模糊,有时候添加头文件就是凭感觉,有没有相关的讲解呢?如果深入了解这个的话,就知道#include“xxxx”应该放哪里,怎么放不会报错。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

808

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3875
金钱
3875
注册时间
2017-3-7
在线时间
1691 小时
发表于 2022-11-3 09:59:32 | 显示全部楼层
一般用到那个函数声明,就包含哪个头文件,可以先不加,看编译报错,查申明,加头文件
回复

使用道具 举报

12

主题

3387

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8634
金钱
8634
注册时间
2020-5-11
在线时间
4078 小时
发表于 2022-11-3 10:02:29 | 显示全部楼层
我的理解是 #include "xxxx" 就是把 "xxxx"文件的内容复制到此处.
函数需要先声明或先定义后才能调用.
变量也需要先声明或定义.
专治疑难杂症
回复

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-6-15
在线时间
9 小时
发表于 2022-11-3 11:28:55 | 显示全部楼层
LcwSwust 发表于 2022-11-3 10:02
我的理解是 #include "xxxx" 就是把 "xxxx"文件的内容复制到此处.
函数需要先声明或先定义后才能调用.
变 ...

嗯嗯,这个应该是大多数人的理解。我也是这样理解的
回复

使用道具 举报

31

主题

1954

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4503
金钱
4503
注册时间
2018-5-11
在线时间
943 小时
发表于 2022-11-3 13:03:27 | 显示全部楼层
一般来说,一个工程主要是由若干的c文件构成的,
完全可以不需要任何头文件(h文件),
而在c文件的前面往往需要定义一些助记符、结构体、函数声明,
为了使结构清晰,就把这些不产生代码的内容独立形成一个文件,即头文件。
因此头文件主要定义助记符、结构体、函数声明等,一般不定义实体变量,
头文件可以包含其它的头文件,但不能重复。
正如3楼所言,
#include "xxx.h" 就是把 "xxx.h"文件的全部内容复制到这个地方,
没有什么神秘的。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2022-11-3 13:25:07 | 显示全部楼层
把你想要的C头文件都加上去就好了啊,反正没用到编译器会把它踢掉的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-16 14:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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