标题: keil怎么多文件编译? [打印本页]

作者: 图南o    时间: 2020-2-27 22:30
标题: keil怎么多文件编译?
怎么让主函数与openbuzz和close联系起来?多文件编译的话主函数应该怎么改?实在没有头绪。。。


作者: man1234567    时间: 2020-2-28 07:30
在文件头上写明需调用的文件。
作者: hantu    时间: 2020-2-28 08:55
你都已经把那些函数的声明和定义都写在了主文件里,就做单文件的项目好了,还搞什么*.h文件呀 ...

多文件的话两种方式,一个是把子c文件直接改为*.h,在主程序是只包含这个*.h文件就能把的代码给包含进来了,二是子文件要分别写成*.h头文件和*.c源文件,主函数中要包含这个*.h,项目中要添加这个*.c就可以了。
作者: banalsheep    时间: 2020-2-28 10:06
多模块(C-C/C-ASM等)编程,在同一项目中加入各模块,需要在调用模块中对被调用模块中的所有函数或变量进行申明(外部)一会儿找一个例程

作者: banalsheep    时间: 2020-2-28 10:09
主模块:


#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);
}



作者: chinayanhui    时间: 2020-2-28 10:48
【main.c】
  1. include "a.h"

  2. void main()
  3. {
  4.     while(1)
  5.     {
  6.         ;
  7.     }
  8. }
复制代码


【a.h】
  1. #ifndef __A_H__
  2. #define __A_H__

  3.     void test();

  4. #endif
复制代码


【a.c】
  1. #include "A.H"

  2. void test()
  3. {
  4.     ;
  5. }
复制代码

作者: chinayanhui    时间: 2020-2-28 10:50
banalsheep 发表于 2020-2-28 10:09
主模块:

最好使用头文件进行调用。
作者: 图南o    时间: 2020-2-28 12:03
hantu 发表于 2020-2-28 08:55
你都已经把那些函数的声明和定义都写在了主文件里,就做单文件的项目好了,还搞什么*.h文件呀 ...

多文 ...

最近刚在网上看到这个,想用这个程序试一下,但是网上那个教程我没不太有头绪,请问openbuzz.h里除了本来写的那些,再把这个openbuzz程序全部直接加进来吗?
作者: jhczy    时间: 2020-2-28 15:22
程序中要写成“openbuzz.h”、“closebuzz.h”,程序中书写错误,少了“.h”
作者: 图南o    时间: 2020-2-28 20:31
chinayanhui 发表于 2020-2-28 10:48
【main.c】

谢谢你
作者: ccczzz    时间: 2020-2-29 13:21
要想把多个C程序文件同时编译:
1.主函数要有对其他C程序文件里所有函数的声明,可以用.h文件来声明并在主函数里include "*.h", *代表h文件文件名;
2.在keil工程里还要添加所有的.c程序文件 。
作者: 简单/    时间: 2020-6-9 07:28
chinayanhui 发表于 2020-2-28 10:48
【main.c】

感谢,网上找了半天做不出来,直到看到了您的这条
作者: lzx6666    时间: 2021-10-28 13:45
chinayanhui 发表于 2020-2-28 10:48
【main.c】

好人一生平安,解决我小白的问题




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