单片机/MCU论坛
登录
直播中
土老冒
11年用户
92经验值
擅长:可编程逻辑 电源/新能源 测量仪表 控制/MCU
私信
关注
[问答]
C51在主程序中定义的函数在另一个被加载的自己作的.h格式文件里是否可以直接调用?
开启该帖子的消息推送
单片机编程
如题所述编了一个测试用的程序(test.c)
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
........
void delay (uint a)
{
while (a--);
}
在程序中定义了一个延时用的函数,在加载的文件中有一个数码显示驱动的头文件leddig_drv.h。在这个头文件中也需要用到延时:
.................
case(7):
LSA=0;LSB=0;LSC=0; break;
}
P0=smgduan[Disp_Buffer
];
delay(10);
P0=0x00;
}
}
#endif
我要请教的大侠的问题是:在leddig_drv.h的头文件中是否可以直接调用主文件(test.c)中的delay()函数?如何调用?
直接调用就会出现错误:
LEDDIG_DRV.H(38): warning C206: 'delay': missing func
ti
on-prototype
LEDDIG_DRV.H(38): error C267: 'delay': requires ANSI-style prototype
DS18B20_TEST.C(20): error C231: 'delay': redefinition
DS18B20_TEST.C(22): error C231: 'delay': redefinition
而我在leddig_drv.h的头部位置声明了一下:
........
***it LSC=P2^4;
void delay(unsigned int a);
void DigDisplay()
........
程序虽然可以通过,但是在h文件里仅仅是一个名称而没有实际的内容,这个声明是否有效?
回帖
(1)
hhhuaywhsh
2021-8-26 17:44:22
最佳答案
在要调用的那个文件前面加这个试试 extern void delay (uint a);
在要调用的那个文件前面加这个试试 extern void delay (uint a);
举报
更多回帖
rotate(-90deg);
回复
相关问答
单片机编程
main.
c
里
没有
直接
调用
getCRC16()但加入了相应的头
文件
就
可以
编译了
2019-02-20
2543
问
一
个
关于字体库
文件
如何能在多个.
C
文件
中
调用
问题
2016-05-01
3009
定义
一
个
CONST类型的数组a放在char.
h
里面那
在
另一个
C
文件
里面需要
调用
数组a时怎么办?
2018-08-30
4863
在
C51
系统上如何实现YAFFS
文件
系统?
2021-04-27
1241
在
keil
中
如何在
一
个
工程下使用多个
C
文件
?
2014-08-11
44767
在
一
段
程序
的开始位置已经使用#define
定义
过
一
个
变量的类型,但是
在
函数
中
却不被认可,这是啥原因啊
2021-08-14
2914
keil
里
的工程
文件
里
同名的.
c
和.
h
文件
之间有什么关系?
2019-09-04
6473
crt0
另一个
重要的功能是什么
2021-07-14
1320
咨询各位大神
一
个
问题.
h
格式文件
能不能变成
c
语言的问价呢?
2017-04-11
1689
在
keil调试过程
中
如何知道
定义
的变量所在的物理地址?
2021-08-20
5171
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分