标题: keil中一个工程多个文件的问题 [打印本页]

作者: 呵呵一笑很倾城    时间: 2017-8-18 15:40
标题: keil中一个工程多个文件的问题
keil中有时候比较大的程序下面会有很多文件    比如分开的各个模块    查阅了一些资料只要用双引号在主函数中括起来就可以   但是我编译运行后是失败的   请问具体的做法是什么呢

作者: wulin    时间: 2017-8-18 17:33
看图示



作者: dzbj    时间: 2017-8-18 21:25
用""或者<>都可以 但你要有你引用的文件才行 没有当然找不到 你把要模块化的函数保存到单独的文件里并以.C结尾 然后 至少要存放在工作目录中 或者在工程选项里指定要包括的目录 然后就可以引用了
作者: wfivenx    时间: 2017-8-18 21:56
在设置里面添加一下头文件
作者: bayga456    时间: 2017-8-18 22:09
设置里面可以增加头文件位置
作者: 不倒翁.WZT    时间: 2017-8-19 07:21
标题: RE: keil中一个工程多个文件的问题
失败的原因很多,不只是用双引号引起来那么简单。在这些模块的头文件中必须写有:“#include<reg52.h>具体要看使用什么单片机”以及其它一些该子模块中需要的功能的头文件,要定义该子模块中需要的变量,以及该子模块中子函数的函数名,在该子模块中还需要写入该子模块的头文件名。这些工作都做过了还有可能有“WARNING L16.......”的报警,在这些报警中告诉了没有被调用的子函数,所以还要在主程序中调用这些子函数。这种写法优点颇多,缺点就是较麻烦。
作者: bayga456    时间: 2017-8-19 10:55
不倒翁.WZT 发表于 2017-8-19 07:21
失败的原因很多,不只是用双引号引起来那么简单。在这些模块的头文件中必须写有:“#include具体要看使用什 ...

没有使用的函数报警可以设置去掉的
作者: univers    时间: 2019-3-13 15:16
一个功能模块一般有一个头文件,和一个C文件,C文件里包含你要调用的.h文件,如果你有开发版,可以尝试自己去写一个多文件,之后就知道怎样组合在一起的了。熟了之后可以续继写更多的模块组合在一起。
作者: 7358655    时间: 2019-3-13 20:49
一个.c,配一个.h文件,没有.h怎么包含?

QQ截图20190313204642.png (8.64 KB, 下载次数: 77)

正常模式

正常模式

作者: univers    时间: 2019-3-15 10:17
7358655 发表于 2019-3-13 20:49
一个.c,配一个.h文件,没有.h怎么包含?

h文件写声接口,定义一些变量,声明函数。C里就是写你在h里声明的函数。
作者: 2925141396    时间: 2019-3-15 20:41
可以上网上找一些实例模仿一下

作者: 零点xu    时间: 2019-3-16 10:45
有可能是你没有把文件加进去吧,也有可能你的头文件没有定义好找不到。或者是路径
作者: yoyomini    时间: 2019-3-17 10:49
如果是同一个变量在不同的文件中使用要把这些变量定义为外部变量,如 你在一个文件中定义了flag 另一个文件要用到flag变量 则在该文件 变量声明为extern flag1
作者: 嘉立创AAA    时间: 2019-3-17 10:58
建议你去找一个别人的头文件例子练练手你就知道怎么做了
作者: W123w    时间: 2019-3-17 13:20
还需要声明对应的“.H”文件,在对应的".H"文件中还需要声明".C"文件中有哪些子函数。
作者: IT_TI    时间: 2022-9-13 08:35
失败的原因在下面可以看到
作者: IT_TI    时间: 2022-9-13 08:38
7358655 发表于 2019-3-13 20:49
一个.c,配一个.h文件,没有.h怎么包含?

在.c同一个文件目录创建一个.h文件,.h文件有格式要求,#ifndef **_H #defined **_H ... #endif
作者: Hephaestus    时间: 2022-9-13 11:28
把失败的错误贴出来,我猜是没有配置h文件路径。
作者: xxxevery    时间: 2022-9-13 14:05
<>是表示直接到编译软件的系统文件指定的地方去寻找,而“”是表示先在所写程序所在的文件夹下寻找,如果找不到再到编译软件的系统文件指定的地方去寻找。不过在所写程序所在的文件夹下寻找只限于该文件夹的根目录下,如果头文件包含在所写程序所在的文件夹下中的下一级文件夹中编译器就找不到了,就必须在 target options/C51/include paths中选择所有要用到的h头文件所在的最终文件夹
作者: 123456ZXC1    时间: 2022-9-14 13:31
添加一下头文件




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1