51单片机c语言编程头文件的问题
我在头文件#include"beep.h"中已经定义了函数voidBeep_Half(void),在主函数中已经包含了beep.h,但是编译时还是提示该函数没有定义,必须...
我在头文件#include "beep.h"中已经定义了函数void Beep_Half(void),在主函数中已经包含了beep.h,但是编译时还是提示该函数没有定义,必须在main主函数中重新声明一遍void Beep_Half(void);请问这是什么原因???
展开
4个回答
展开全部
对于C语言的头文件来说,通常情况下是使用#include+文件名语句进行引用。
格式如下:
#include
或
#include "MyLib.h"
使用 #include时,使用引号与尖括号的意思是不一样的。使用引号””时,首先搜索工程文件所在目录,然后再搜索编译器头文件所在目录。所以对于用户自定义头文件来说,通常使用双引号。
而使用尖括号>时,刚好是相反的搜索顺序。所以对于编译系统提供的头文件来说,通常使用尖括号。
例:
假设我们有两个文件名一样的头文件 hardware.h ,但内容却是不一样的。一个保存在编译器指定的头文件目录下,我们把它叫做文件I ,另一个则保存在当前工程的目录下,我们把它叫做文件 II 。
如果我们使用的是# include ,则我们引用到的是文件 I。如果我们使用的是#include “hardware.h”,则我们引用的将是文件 II 。
格式如下:
#include
或
#include "MyLib.h"
使用 #include时,使用引号与尖括号的意思是不一样的。使用引号””时,首先搜索工程文件所在目录,然后再搜索编译器头文件所在目录。所以对于用户自定义头文件来说,通常使用双引号。
而使用尖括号>时,刚好是相反的搜索顺序。所以对于编译系统提供的头文件来说,通常使用尖括号。
例:
假设我们有两个文件名一样的头文件 hardware.h ,但内容却是不一样的。一个保存在编译器指定的头文件目录下,我们把它叫做文件I ,另一个则保存在当前工程的目录下,我们把它叫做文件 II 。
如果我们使用的是# include ,则我们引用到的是文件 I。如果我们使用的是#include “hardware.h”,则我们引用的将是文件 II 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个告警是告诉你没有实现函数吧。你应该把这个函数的主体在.c里实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你看看定义的函数名一样吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询