我用keil软件定义的头文件为什么引用的时候会有警告?

自定义的头文件:
#ifndef __Delay_H__
#define __Delay_H__
void DelayUs2x(unsigned char t)
{
while(--t);
}
/*------------------------------------------------
mS延时函数,含有输入参数 unsigned char t,无返回值
unsigned char 是定义无符号字符变量,其值的范围是
0~255 这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
void DelayMs(unsigned char t)
{

while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}

可引用的时候总是只会出现下面警告:
C:\KEIL\C51\INC\ATMEL\LCD.H(1):WARNING C315: unknown #directive 'ifdef_LCD_H_'
C:\KEIL\C51\INC\ATMEL\LCD.H(2):WARNING C315: unknown #directive 'define_LCD_H_'
C:\KEIL\C51\INC\ATMEL\LCD.H(146):WARNING C312: misplaced endif control
不好意思打错了,粘贴错了,那个LCD改成Delay才对,而且,自定义程序里面漏了#endif !!!

第1个回答  2011-08-15
#ifndef __DELAY_H__
#define __DELAY_H__
...
#endif追问

有什么区别吗???

追答

你的缺空格,都连成一团了!!!

追问

哪里的空格???

追答

你的
ifdef_Delay_H_
define_Delay_H_

第2个回答  2011-08-15
在程序最后要加上#endif追问

头文件里面是有的,我粘贴过来的时候漏了,不好意思啊!

追答

这个文件没有问题,可能是其他地方调用导致了错误。说说你的工程里面的结构吧,或者把工程发我看看,我资料里面有QQ

本回答被提问者采纳
第3个回答  2011-08-15
兄弟,学会看英文,你就不用来百度知道了追问

这个年代,不懂英文也可以看懂的好不好,用有道翻译一下就可以了!

第4个回答  2011-08-15
'ifdef_LCD_H_'
'define_LCD_H_'
你是写在哪里了?追问

不好意思,粘贴错了,应该是'ifdef_Delay_H_' 'define_Delay_H_' 才对!

KEIL中reg52.h为么不能用?总是报错
的确,如果想用一个头文件的话,首先要确定keil里面有这个头文件,#include<reg52.h>报错,说明你的keil里面没有这个头文件,那么你可以用#include<reg51.h>代替reg52.h,因为51和52的单片机的管脚定义是一样的……

keil工程Error: L6218E: Undefined symbol main (referred from rtent...
2,大多数是因为未加main.c文件于工程中或main单词拼写错误。解决:仔细检查程序代码,看是否出现拼写错误,修改main单词。如果自己的程序并没有出现上述这两种情况,可能是因为《ARM处理器裸机开发实战——机制而非策略》这本书自定的启动代码是根据ADS1.2软件编写的{自定义的启动代码里定义了Main(),...

在运行keil时遇到这个警告,结果pack installer什么都装不了了
是插件未安装的意思。1、登陆STC的官网,下载最新的STC-ISP软件,并安装到电脑上。2、双击打开STC-ISP软件,点击右上角的kiel仿真设置,然后点击“添加STC仿真驱动到keil软件中\/添加型号和头文件到keil软件中”。3、在弹出的框内选择keil的安装目录(如:C:\\keil),选中keil文件夹,按确定,4、弹出ST...

如图所示:单片机的Keil软件里在子函数里为什么定义static 会有警告?
静态局部变量在函数内定义,生存期为整个源程序,但作用域与自动变量相同,只能在定义该变量的函数内使用。退出该函数后,尽管该变量还继续存在,但不能使用它。所以 b =100会常驻内存,单片机的RAM本来就小,所以编译器可能不允许。

keil5用于stm32打开工程出现闪退或uvision has not been properly...
在学习使用KEIL5开发STM32时,可能遇到打开工程时出现闪退或收到uvision has not been properly closed...和Functionality will be deactivated ...的警告,并且无法使用指针。针对此问题,网上存在一种可能的解决方法,即通过删除注册表中的多余信息来解决。具体操作如下:1. 打开注册表编辑器,输入“...

为什么用keil软件编程后检测总是error 56:can"t open file?
肯定是点错编译的按键了,以后按键的时候看清楚再点,别瞎点。keil的编译有三个按键,第一个translate(Ctrl+F7)这个只编译不连接,第二个build(F7)这个才会产生链接产生obj的文件,第三个rebuild(平常你就用这个就可以)这个是编译并连接所有的文件,产生仿真所需要的文件,我想你应该就是按的第一...

keil软件编译时出现这种情况的原因是什么?
重复定义了。估计是你调用了两个类似的头文件。你看看main.c里是否还动用了REG51.H或REG52.H,别再引用这个头文件

keil5 头文件读不进去。我照着源码打的,单片机出不了结果,我怀疑软件有...
keil5不能识别自己写的头文件 遇到这种情况是应为自己没有在编译器中告诉编译器你的头文件在哪个文件夹里造成的,SO 首先project–>option for…..—>C\/C++–>include paths在这里设置编译文件的文件夹 OK

Keil遇到“ Target not created”问题,怎么办?
3. **更新或重新安装Keil**:有时候,软件本身的问题可能导致编译失败。尝试更新到最新版本的Keil或重新安装Keil软件。4. **检查代码**:确认代码中没有未定义的变量、函数或类型,确保所有引用的库和头文件都已正确包含。5. **清理项目**:在Keil中执行清理(Clean)操作,以删除旧的编译文件和依赖...

keil软件编译时显示未定义标记是为什么?
在使用keil软件进行编译时,遇到"undefined identifier"的错误,通常表示程序中引用了一个未被定义的标识符或变量。这种情况很常见,可能是由于变量未被声明或初始化,或者大小写不一致导致的。例如,你定义了一个名为"unsigned char num"的变量,但在后续代码中写成了"NUM",这种大小写不一致就会引发错误...

相似回答