OpenEdv-开源电子网

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

MDK工程中,为什么C/C++选项已经添加了.h声明,.c文件还要再次声明呢?而且还不会重复包含!!

[复制链接]

53

主题

175

帖子

1

精华

高级会员

Rank: 4

积分
516
金钱
516
注册时间
2014-5-16
在线时间
7 小时
发表于 2014-6-4 16:45:47 | 显示全部楼层 |阅读模式
5金钱
MDK工程中,为什么C/C++选项已经添加了.h声明,.c文件还要再次声明呢?而且还不会重复包含!!

最佳答案

查看完整内容[请看2#楼]

PATH里面只是告诉你从哪些路径去找头文件。 .c才是真正包含。
本人新人,各位多包涵!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2014-6-4 16:45:48 | 显示全部楼层
PATH里面只是告诉你从哪些路径去找头文件。
.c才是真正包含。
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

10

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2013-12-3
在线时间
0 小时
发表于 2014-6-4 16:45:48 | 显示全部楼层
额。那是因为包含了stm32f10x.h,而这个头文件里又包含了stm32f10x_conf.h,你仔细看看这个stm32f1xx_conf.h头文件里
包含了哪些就知道了。
不用谢了……
回复

使用道具 举报

0

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
370
金钱
370
注册时间
2014-3-5
在线时间
65 小时
发表于 2014-6-4 16:45:48 | 显示全部楼层
可以参考看下这个结构图

急不来总有障碍客观的存在...
回复

使用道具 举报

53

主题

175

帖子

1

精华

高级会员

Rank: 4

积分
516
金钱
516
注册时间
2014-5-16
在线时间
7 小时
 楼主| 发表于 2014-6-4 17:18:24 | 显示全部楼层
回复【2楼】Admin:
---------------------------------
在key.c文件中,调用了GPIO_InitTypeDef函数,这个函数在stm32f10x_gpio.h中,但是key.c并没有声明它,为什么依然可以用呢?
本人新人,各位多包涵!
回复

使用道具 举报

53

主题

175

帖子

1

精华

高级会员

Rank: 4

积分
516
金钱
516
注册时间
2014-5-16
在线时间
7 小时
 楼主| 发表于 2014-6-4 17:46:28 | 显示全部楼层
回复【4楼】eling13:
---------------------------------
果然找到了,你是怎么知道的?
本人新人,各位多包涵!
回复

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2014-6-4 18:58:03 | 显示全部楼层
回复【5楼】x1213378204:
---------------------------------
我们开发板手册的跑马灯章节有讲解
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

10

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2013-12-3
在线时间
0 小时
发表于 2014-6-5 08:18:53 | 显示全部楼层
回复【5楼】x1213378204:
---------------------------------
原子哥的教程有讲到的,而且自己琢磨琢磨就通了。
不用谢了……
回复

使用道具 举报

10

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2013-12-3
在线时间
0 小时
发表于 2014-6-5 08:46:03 | 显示全部楼层
回复【8楼】文刀言身寸:
---------------------------------
正哥就是吊!
不用谢了……
回复

使用道具 举报

53

主题

175

帖子

1

精华

高级会员

Rank: 4

积分
516
金钱
516
注册时间
2014-5-16
在线时间
7 小时
 楼主| 发表于 2014-6-5 09:05:58 | 显示全部楼层
回复【8楼】文刀言身寸:
---------------------------------
第一个APPLICATION.C应该就是main函数所在的.c源文件吧,在这里面首先要include"sys.h"才行吧,sys.h中有stm32f10x.h的声明,然后才能得到其他的?
本人新人,各位多包涵!
回复

使用道具 举报

10

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2013-12-3
在线时间
0 小时
发表于 2014-6-5 09:25:29 | 显示全部楼层
回复【10楼】x1213378204:
---------------------------------
。。举一反三啊。 如果你不使用sys.h 就得自己包含stm32f10x.h这头文件。
而且你会看到#ifdef USE_STDPERIPH_DRIVER
                 #include "stm32f10x_conf.h"
                 #endif这句话
C/C++选项里定义了USE_STDPERIPH_DRIVER这个 所以stm32f10x.h这头文件就可以包含 #include "stm32f10x_conf.h"了
不用谢了……
回复

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2012-9-15
在线时间
6 小时
发表于 2014-7-10 15:56:03 | 显示全部楼层
是啊,也是看了好久,才搞懂这个问题,层次多了,有点小复杂,呵呵
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-6 05:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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