chinayanhui 发表于 2020-2-28 10:48 好人一生平安,解决我小白的问题 |
chinayanhui 发表于 2020-2-28 10:48 感谢,网上找了半天做不出来,直到看到了您的这条 ![]() |
|
要想把多个C程序文件同时编译: 1.主函数要有对其他C程序文件里所有函数的声明,可以用.h文件来声明并在主函数里include "*.h", *代表h文件文件名; 2.在keil工程里还要添加所有的.c程序文件 。 |
chinayanhui 发表于 2020-2-28 10:48 谢谢你 ![]() |
| 程序中要写成“openbuzz.h”、“closebuzz.h”,程序中书写错误,少了“.h” |
hantu 发表于 2020-2-28 08:55 最近刚在网上看到这个,想用这个程序试一下,但是网上那个教程我没不太有头绪,请问openbuzz.h里除了本来写的那些,再把这个openbuzz程序全部直接加进来吗? ![]() |
|
最好使用头文件进行调用。 |
【main.c】
【a.h】
【a.c】
|
|
主模块: #include <reg52.h> extern unsigned char Fuction2(unsigned char a,unsigned char b); //调用其他模块中的函数 unsigned char Fuction1(unsigned char a) { a++; return (a); } void main(void) { unsigned char tmp; while(1) { tmp = Fuction2(1, 2); } } 次模块: extern unsigned char Fuction1(unsigned char a); //调用其他模块中的函数 unsigned char Fuction2(unsigned char a,unsigned char b) { a=Fuction1(a); // Fuction1由主模块定义,实现形参自+1并返回 return(a+b); } |
|
多模块(C-C/C-ASM等)编程,在同一项目中加入各模块,需要在调用模块中对被调用模块中的所有函数或变量进行申明(外部)一会儿找一个例程 |
|
你都已经把那些函数的声明和定义都写在了主文件里,就做单文件的项目好了,还搞什么*.h文件呀 ... 多文件的话两种方式,一个是把子c文件直接改为*.h,在主程序是只包含这个*.h文件就能把的代码给包含进来了,二是子文件要分别写成*.h头文件和*.c源文件,主函数中要包含这个*.h,项目中要添加这个*.c就可以了。 |
| 在文件头上写明需调用的文件。 |