OpenEdv-开源电子网

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

【国庆看代码】为什么STM32里面include的文件总是.h而不能是.c?

[复制链接]

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-9-8
在线时间
13 小时
发表于 2016-10-5 14:05:24 | 显示全部楼层 |阅读模式
1金钱
rt,写了一个源文件以后,再写一个头文件真麻烦啊!!我看其他用C编程的包含源文件也没有问题啊,为什么到了这里包含源文件编译就是不通过,必须包含头文件才行?

最佳答案

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

其实也可以inlcude .c,只是不太规范而已。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-10-5 14:05:25 | 显示全部楼层
其实也可以inlcude .c,只是不太规范而已。
回复

使用道具 举报

344

主题

1464

帖子

12

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
8044
金钱
8044
注册时间
2015-10-15
在线时间
2907 小时
发表于 2016-10-5 17:56:55 | 显示全部楼层
这是为了代码规范。。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2016-10-5 18:23:46 | 显示全部楼层
我怎么只听说过包含.h的
回复

使用道具 举报

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-9-8
在线时间
13 小时
 楼主| 发表于 2016-10-5 19:35:27 | 显示全部楼层
d1z1y2 发表于 2016-10-5 18:23
我怎么只听说过包含.h的

你百度一下,很多也包含.c的
回复

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
发表于 2016-10-5 20:14:04 | 显示全部楼层
没看过包含c文件的,建议楼主学习一下编程规范
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-10-5 20:49:23 | 显示全部楼层
楼上正解,楼主这种问题先自己百度呗
回复

使用道具 举报

6

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2016-9-24
在线时间
80 小时
发表于 2016-10-5 20:54:31 | 显示全部楼层
学习了原子的STM32视频,里面代码的规范,再看自己以前的,简直是渣渣.....
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2016-10-5 22:49:52 | 显示全部楼层
你百度下  C语言 模块化编程 吧
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-10-6 16:41:38 | 显示全部楼层
本帖最后由 likunxue 于 2016-10-6 16:51 编辑
小温 发表于 2016-10-5 20:14
没看过包含c文件的,建议楼主学习一下编程规范

好像直接在C文件的开始处包含就行了比如我经写过的一个C文件中需用要包含一个 正弦表的C文件,
/*******************************************************************************************
模块名称: SPWM数据计算模块
文件名称: SPWM.C
版    本: V1.0
说    明: 完成SPWM的所有数据计算工作
日    期: 2015年 5月26日
C  P  U : STM32F103ZE 主频: 72MHz
说    明: 基于软件的快速生成自然采样法 SPWM数据
********************************************************************************************/
#define  SPWM_GLOBALS                          //定义全局变量标识
#include  "delay.h"                      //延时函数驱动
#include  "SPWM.H"                       //SPWM驱动头文件
#include  "SPWM_SIN.C"                   //64K正弦表
typedef unsigned long long u64;

/***********  以上文件是SPWM.C文件的开始部份,    SPWM_SIN.C文件是另一个C文件, 这个模块中的一些函数需用要调用于,
为了代码好编定, 将 SIN计算及SIN数据表放在一另一个C文件," SPWM_SIN.C"中, 在这个模的开始部份包含进来就行了!





回复

使用道具 举报

2

主题

194

帖子

0

精华

高级会员

Rank: 4

积分
981
金钱
981
注册时间
2015-9-20
在线时间
148 小时
发表于 2016-10-6 18:22:13 | 显示全部楼层
likunxue 发表于 2016-10-6 16:41
好像直接在C文件的开始处包含就行了比如我经写过的一个C文件中需用要包含一个 正弦表的C文件,
/******* ...

长见识了
回复

使用道具 举报

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-9-8
在线时间
13 小时
 楼主| 发表于 2016-10-7 09:55:11 | 显示全部楼层
正点原子 发表于 2016-10-5 14:05
其实也可以inlcude .c,只是不太规范而已。

好像不行啊
回复

使用道具 举报

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-9-8
在线时间
13 小时
 楼主| 发表于 2016-10-7 15:33:42 | 显示全部楼层
likunxue 发表于 2016-10-6 16:41
好像直接在C文件的开始处包含就行了比如我经写过的一个C文件中需用要包含一个 正弦表的C文件,
/******* ...

能不能没有上面的SPWM.H而直接包含.c?
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2016-10-8 12:43:17 | 显示全部楼层
其实要的是变量、函数的声明,还有宏定义,编译器看到这些声明,就知道变量、函数的类型,形参等。包含x.c也是可以的,因为x.c文件里一般有这些声明,或者x.c里面开头又包含了x.h,而x.h里有声明,所以编译器能识别,效果也一样。
但是学了C++后,就知道把声明放在.h文件里,只包含.h文件有什么好处了。
回复

使用道具 举报

6

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
370
金钱
370
注册时间
2014-12-15
在线时间
66 小时
发表于 2016-10-8 17:27:38 | 显示全部楼层
只见过包含数据类的.c文件,类似上面的“#include  "SPWM_SIN.C"      //64K正弦表”这种数组数据,因为只是数据所以感觉没什么坏处。
当初用的是keil 51的编译器,可以编译通过。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 04:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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