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文件. 代码是没有错误的.那么问题就出在设置上面了. 百度了一圈,发现很少人解答 ...
随机推荐
- [置顶] oracle存储过程中单引号及字符串拼接处理
在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义.单引号的使用是就近配对,即就近原则.而在单引号充当转义角色时相对不好理解 1.从第二个单引号开始被视为转义符,如果第二个单引号后 ...
- windows下安装mysql5.6.13的主从复制
如下操作均在vmware 虚拟机中winows xp 测试成功 中间走了很多弯路,网上的很多资料都是针对5.1以前的版本,在新版中根本无法使用,所以根据自己的实践整理了这篇文章 主服务:192.168 ...
- getAttribute()获取属性
Js:getAttribute[转] 一份文档就是一棵节点树. ●节点分为不同的类型:元素节点.属性节点和文本节点等. ●getElementById()方法将返回一个对象,该对象对应着文档里的一个特 ...
- cocos2d-x 新建项目 Cannot open include file: ‘cocos2d.h’
新建cocos2d-x 项目分这么几步. 1. 下载最新的cocos2d-x 2. 安装 vs2010 3. 解压cocos2d-x 压缩包,并双击"install-templates-ms ...
- delphi json(CDS包含了Delta数据包)
在delphi中,数据集是最常用数据存取方式.因此,必须建立JSON与TDataSet之间的互转关系,实现数据之间通讯与转换.值得注意的是,这只是普通的TDataset与JSON之间转换,由于CDS包 ...
- MYSQL 语法大全自己总结的
mysql语法大全 --------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不 ...
- NLP | 自然语言处理 - 标注问题与隐马尔科夫模型(Tagging Problems, and Hidden Markov Models)
什么是标注? 在自然语言处理中有一个常见的任务,即标注.常见的有:1)词性标注(Part-Of-Speech Tagging),将句子中的每一个词标注词性,比如名词.动词等:2)实体标注(Name E ...
- Python pip 安装包
Python 第三方包可以使用pip 更容易地安装,和管理 pip 的下载地址 https://pypi.python.org/pypi/pip/ pip的使用以及相关文档参考 https://pip ...
- iOS两个强制旋转屏幕的方法
第一个: // 状态栏动画持续时间 CGFloat duration = [UIApplication sharedApplication].statusBarOrientationAnimation ...
- 用XCA(X Certificate and key management)可视化程序管理SSL 证书(3)--创建自己定义的凭证管理中心(Certificate Authority)
在第"用XCA(X Certificate and key management)可视化程序管理SSL 证书(2)---创建证书请求"章节中,我们介绍了怎样用XCA创建SSL证书请 ...