找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3065|回复: 12
打印 上一主题 下一主题
收起左侧

keil怎么多文件编译?

[复制链接]
跳转到指定楼层
楼主
怎么让主函数与openbuzz和close联系起来?多文件编译的话主函数应该怎么改?实在没有头绪。。。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:584814 发表于 2020-2-28 07:30 | 只看该作者
在文件头上写明需调用的文件。
回复

使用道具 举报

板凳
ID:462827 发表于 2020-2-28 08:55 | 只看该作者
你都已经把那些函数的声明和定义都写在了主文件里,就做单文件的项目好了,还搞什么*.h文件呀 ...

多文件的话两种方式,一个是把子c文件直接改为*.h,在主程序是只包含这个*.h文件就能把的代码给包含进来了,二是子文件要分别写成*.h头文件和*.c源文件,主函数中要包含这个*.h,项目中要添加这个*.c就可以了。
回复

使用道具 举报

地板
ID:168996 发表于 2020-2-28 10:06 | 只看该作者
多模块(C-C/C-ASM等)编程,在同一项目中加入各模块,需要在调用模块中对被调用模块中的所有函数或变量进行申明(外部)一会儿找一个例程
回复

使用道具 举报

5#
ID:168996 发表于 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);
}


回复

使用道具 举报

6#
ID:695961 发表于 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. }
复制代码
回复

使用道具 举报

7#
ID:695961 发表于 2020-2-28 10:50 | 只看该作者

最好使用头文件进行调用。
回复

使用道具 举报

8#
ID:688584 发表于 2020-2-28 12:03 | 只看该作者
hantu 发表于 2020-2-28 08:55
你都已经把那些函数的声明和定义都写在了主文件里,就做单文件的项目好了,还搞什么*.h文件呀 ...

多文 ...

最近刚在网上看到这个,想用这个程序试一下,但是网上那个教程我没不太有头绪,请问openbuzz.h里除了本来写的那些,再把这个openbuzz程序全部直接加进来吗?
回复

使用道具 举报

9#
ID:170318 发表于 2020-2-28 15:22 | 只看该作者
程序中要写成“openbuzz.h”、“closebuzz.h”,程序中书写错误,少了“.h”
回复

使用道具 举报

10#
ID:688584 发表于 2020-2-28 20:31 | 只看该作者

谢谢你
回复

使用道具 举报

11#
ID:400250 发表于 2020-2-29 13:21 | 只看该作者
要想把多个C程序文件同时编译:
1.主函数要有对其他C程序文件里所有函数的声明,可以用.h文件来声明并在主函数里include "*.h", *代表h文件文件名;
2.在keil工程里还要添加所有的.c程序文件 。
回复

使用道具 举报

12#
ID:644528 发表于 2020-6-9 07:28 | 只看该作者

感谢,网上找了半天做不出来,直到看到了您的这条
回复

使用道具 举报

13#
ID:975670 发表于 2021-10-28 13:45 | 只看该作者

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

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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