keil提示:missing ';' before 'XXX'但又找不到是哪里少了分号——已解决!
今天写一个51程序,keil在编译时总提示丢失了一个分号,但怎么都找不到是哪里丢失了分号,搞了一下午才解决问题,现在把经验在此分享,以求让他人不要犯同样的错误!提示信息为:
LCD12864.H(20): error C129: missing ';' before 'Flag'
我在LCD12864.c文件里定义的u8 Flag = 0;
在LCD12864.H文件里作此声明:extern u8 Flag;
因为问题是出在头文件里,所以现在把LCD12864.H文件里相关代码列出来:
#ifndef _LCD12864_H
#define _LCD12864_H
#include <reg52.h>
extern u8 Flag;
编译后出错,然后鼠标双击错误信息,箭头会跳转到extern u8 Flag;这句代码上!
但大家看看:这句根本没少分号(当然它前后几行的语句也都没有少分号的)。
实际问题所在处是extern u8 Flag里的u8!将上述代码改为如下即可:
#ifndef _LCD12864_H
#define _LCD12864_H
#include <reg52.h>
#define u8 unsigned char
#define u16 unsigned int
extern u8 Flag;
哈哈,原因就不用解释了吧,一看便知。但这种情况,编译器为什么会提示少了分号,这我就不懂啦,麻烦哪个牛人讲讲其中的奥秘!
另外为了将导致这种出错现象的情况列举的更全面(很容易就找出问题所在的情况就不列举啦),我将网上其它网友遇到的情况也列举下:
如下文章链接:http://weidebao1985.blog.163.com/blog/static/20368906200971405819673/
关于keil出现的两个奇怪的错误
今天帮同学看程序,发现keil里面有两个比较变态的错误。,现总结总结呗
问题一:编译时老是提示某行缺少分号,或者说存在非法字符,但是表面看来有看不出存在异常的符号并且分号也是在英文模式下输入的,唉,肉眼真的看不出来啦,现在教你一招:用双斜杠“//”把出错的这一行注释掉,这样你就可以看见这行或许有一些因为你当时输入时不小心输入的混乱字符,然后把混乱字符删掉,最后去掉注释符,一切就OK了,对于keil的这个漏洞这招真的很有用的;
问题二:编译时总是提示语法错误,表面看来真的没有什么,同学就是写了一个简单的数组?问题何在呢?问题出在数组的名字选择了data[5],后来随便换了一个名字竟然不报错了,看来在keil中用C语言写程序时也不能动用data这个名字啊,够狠,切记切记,呵呵。
keil提示:missing ';' before 'XXX'但又找不到是哪里少了分号——已解决!的更多相关文章
- 【Redis】启动redis提示Could not connect to Redis at 127.0.0.1:6379: Connection refused 已解决
1.配置redis.conf文件,将daemonize no 为 daemonize yes即可(让redis作为守护进程运行)
- iOS开发中遇到的错误整理 - 集成第三方框架时,编译后XXX头文件找不到
iOS编译报错-XXX头文件找不到 错误出现的情况: 自己在继承第三方的SDK的时候,明明导入了头文件,但是系统报错,提示头文件找不到 解决方法 既然系统找不到,给他个具体路径,继续找去! 路径就填写 ...
- 导入Maven项目后,Eclipse提示“Missing artifact ”类的错误
导入Maven项目后,Eclipse提示“Missing artifact ”类的错误 标签: Maven Missing art 2016-08-15 16:05 679人阅读 评论(0) 收藏 举 ...
- C++错误——”无法启动程序”…\xxx.exe” 系统找不到指定的文件”
背景 在VS2010环境下,升级了一个用C++编写的程序,编译生成成功,但是,不能在VS中直接运行(可以通过打开debug文件目录的exe应用程序运行),提示以下错误:”无法启动程序”…\xxx.ex ...
- xcode6 framework missing submodule xxx 警告
xcode6 framework missing submodule xxx 警告 从xcode6开始,iOS可以直接创建生成framework了 如: 创建 framework 项目,TFKit.f ...
- adt-bundle-linux-x86_64-20131030下新建project提示找不到adb和R.java问题的解决
adt-bundle-linux-x86_64-20131030下新建project提示找不到adb和R.java问题的解决 在ubuntu14.04下,搭建Android开发环境,下载官方的adt- ...
- Eclipse新建Android工程,在模拟器运行的时候提示Unfortunately,XXX has stopped.
刚新建好的android工程在模拟器运行的时候出错,提示Unfortunately,XXX has stopped 查看Eclipse下面的错误信息,双击第一条 把ActionBarActivity前 ...
- vistual studio 2012 安装失败,提示Microsoft Vistual Studio 2012 Devenv找不到元素,等错误信息
在安装vistual studio 2012过程中,出现安装失败,提示Microsoft Vistual Studio 2012 Devenv找不到元素,等错误信息 解决方法是更新相应的server补 ...
- Keil提示premature end of file错误 无法生成HEX文件
今天舍友在使用Keil UV4的时候遇到一个问题:Keil提示premature end of file,无法生成hex文件. 代码是没有错误的.那么问题就出在设置上面了. 百度了一圈,发现很少人解答 ...
随机推荐
- winform利用代码将控件置于顶端底端
有时,我们可能动态的添加控件,并准备将其置于对顶层或最底层.实现的方法有两个: 一种方法是在WinForm窗体中使用Controls控件集的SetChildIndex方法,该方法将子控件设定为指定的索 ...
- 用 Asterisk 搭建自己的免费 VoIP 服务器
原文 http://www.yaoblog.info/?p=5021 1. 这里以 Debian 为例子,安装 Asterisk apt-get update apt-get install aste ...
- 使用 Spring RestTemplate 调用 rest 服务时自定义请求头(custom HTTP headers)
在 Spring 3.0 中可以通过 HttpEntity 对象自定义请求头信息,如: private static final String APPLICATION_PDF = "app ...
- ASP.NET - 出错页
配置Web.config,配置customError区域. <system.web> <customErrors mode ="RemoteOnly" defau ...
- Eclipse用法和技巧一:还原视图和编辑器
链接地址:http://blog.csdn.net/maybe_windleave/article/details/8763744 在实际使用eclipse过程中,由于经常关闭或者打开视图,某一刻你会 ...
- qt之正则表达式
原地址:http://blog.csdn.net/phay/article/details/7304455 QRegExp是Qt的正则表达式类.Qt中有两个不同类的正则表达式.第一类为元字符.它表示一 ...
- Filter和FilterChain具体的使用说明
一.Filter的介绍及使用 什么是过滤器? 与Servlet类似,过滤器是一些web应用程序组件,能够绑定到一个web应用程序中.可是与其它web应用程序组件不同的是,过滤器是"链&quo ...
- webdynpro 调用应用程序做跳转
1.是调用指的是调用生成应用程序,非webdynpro组件程序, 如下: 1)调用页面,并传值 METHOD get_zgmtpage . DATA:lw_application_name TYPE ...
- Tomcat详细用法学习(四)
本篇接上一篇<Tomcat详细用法学习(三)>,主要讲解配置虚拟主机.打包web应用成war包和Tomcat的体系结构 对于Tomcat服务器,可以放置多个网站(多个web应用),这就是讲 ...
- unix ourhdr.h myerr.h
//在学UNIX环境高级编程时把下面两个头文件与源文件放在同一个文件下就可以正常编译了,我的是在ubuntu 12.04环境下,第一个程序编译和运行成功了,希望对大家有帮助(我已经根据网上的资料修改好 ...