keil 工程下多个C文件之间是如何联系和运行的?

keil 工程下多个C文件之间是如何联系和运行的?,第1张

在main.c或者main.c调用的.h文件里面extern另外的C文件里面的函数头就可以用了。\x0d\x0a\x0d\x0a例如你在A.c里面有一神饥个函数是这样的。:void AAA()\x0d\x0a\x0d\x0a那么郑手你在main.c文件的开始这样定义:extern void AAA()\x0d\x0a你喊瞎嫌在main.c里面就可以直接用AAA()了。

当然可以,但你需要有配套的.h文件让C文件之间可以互相调用。

例如有1.c和2.c两个纯耐文件,1.c中有个全局变量a,有个函数void

b(void),那么就有1.h这么写

extern

char

a

void

b(void)

这样的做中春话,如果2.c想使用a或函培李数b的话,在2.c的开头加一句#include

"1.h"就能用了。

LZ问题问得不详细,回答没法详细。

在KEIL中使用2个 C文件,是非常简单的。比如有一个main.c文件,和一个LCD.c文件,main.c你是如何添加到KEIL 工程中的,LCD.c就用同样的办法添加到 KEIL 工程中就行了。

难点不是使用2个C文件,而是在一个C文件中,如何使用另一个C文件的函数、变量等。

多个 C文件的设计,一般称之为 模块化设计,一个C文件就为一个设备(模块)的功能函数(如LCD.c为液晶屏的功能函尘携数)。这种设计的程序结构阶级性是非常明显的,如main.c 可以使用LCD.c的函数,而LCD.c 不可以使用main.c的函数,这就像一个上司可以命令下属干活,而一个下属不能安排上司做事。这C语言中,这叫函数归属关系,上手薯级叫 父函数、下级叫 子函数。基于这种归属关系,所以,在多个C文件中,只需要在父级函数内,对子函数进行 外部函数声明(extern xxxxx()),就可以正常使用 子文件中的函数了。

但模块化设计就是为了方便功能程序(一般主文件 我称之为 功能程序)的编写。如果每一个模块都需要 main.c 在开头写一堆的 extern,不仅会导致主文件的程序界面混乱不堪,模块一多,还容易出错,增加主文件工作量。于是要求,每一个模块文件,都必须带有自己的声明文件(就是对应的头文件,如LCD.h)。主文件只需要包含这个模块的头文件,就能正常调用 子文件中的功能函数了,这样才能减少功能文件的程序编写工作,不仅可以减少出错率,还能提供程序可读性。只需查看功能文件内包含的头文件,就能知道这程序有毕兄者什么功能模块了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8204786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存