51单片机c语言编程头文件的问题

我在头文件#include "beep.h"中已经定义了函数void Beep_Half(void),在主函数中已经包含了beep.h,但是编译时还是提示该函数没有定义,必须在main主函数中重新声明一遍void Beep_Half(void);请问这是什么原因???

不知你是怎么弄的,我照你的样式重复了一遍也没有报错,请照下图认真检查:

另外注意:你在两个文件里定义的beep 和 Beep 是不一样的,这才是错误的原因。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-31
对于C语言的头文件来说,通常情况下是使用#include+文件名语句进行引用。
格式如下:
#include

#include "MyLib.h"
使用 #include时,使用引号与尖括号的意思是不一样的。使用引号””时,首先搜索工程文件所在目录,然后再搜索编译器头文件所在目录。所以对于用户自定义头文件来说,通常使用双引号。
而使用尖括号>时,刚好是相反的搜索顺序。所以对于编译系统提供的头文件来说,通常使用尖括号。
例:
假设我们有两个文件名一样的头文件 hardware.h ,但内容却是不一样的。一个保存在编译器指定的头文件目录下,我们把它叫做文件I ,另一个则保存在当前工程的目录下,我们把它叫做文件 II 。
如果我们使用的是# include ,则我们引用到的是文件 I。如果我们使用的是#include “hardware.h”,则我们引用的将是文件 II 。
第2个回答  2014-05-10
这个告警是告诉你没有实现函数吧。你应该把这个函数的主体在.c里实现。
第3个回答  2014-05-10
你看看定义的函数名一样吗?