今天写一个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'但又找不到是哪里少了分号——已解决!的更多相关文章

  1. 【Redis】启动redis提示Could not connect to Redis at 127.0.0.1:6379: Connection refused 已解决

    1.配置redis.conf文件,将daemonize no 为 daemonize yes即可(让redis作为守护进程运行)

  2. iOS开发中遇到的错误整理 - 集成第三方框架时,编译后XXX头文件找不到

    iOS编译报错-XXX头文件找不到 错误出现的情况: 自己在继承第三方的SDK的时候,明明导入了头文件,但是系统报错,提示头文件找不到 解决方法 既然系统找不到,给他个具体路径,继续找去! 路径就填写 ...

  3. 导入Maven项目后,Eclipse提示“Missing artifact ”类的错误

    导入Maven项目后,Eclipse提示“Missing artifact ”类的错误 标签: Maven Missing art 2016-08-15 16:05 679人阅读 评论(0) 收藏 举 ...

  4. C++错误——”无法启动程序”…\xxx.exe” 系统找不到指定的文件”

    背景 在VS2010环境下,升级了一个用C++编写的程序,编译生成成功,但是,不能在VS中直接运行(可以通过打开debug文件目录的exe应用程序运行),提示以下错误:”无法启动程序”…\xxx.ex ...

  5. xcode6 framework missing submodule xxx 警告

    xcode6 framework missing submodule xxx 警告 从xcode6开始,iOS可以直接创建生成framework了 如: 创建 framework 项目,TFKit.f ...

  6. adt-bundle-linux-x86_64-20131030下新建project提示找不到adb和R.java问题的解决

    adt-bundle-linux-x86_64-20131030下新建project提示找不到adb和R.java问题的解决 在ubuntu14.04下,搭建Android开发环境,下载官方的adt- ...

  7. Eclipse新建Android工程,在模拟器运行的时候提示Unfortunately,XXX has stopped.

    刚新建好的android工程在模拟器运行的时候出错,提示Unfortunately,XXX has stopped 查看Eclipse下面的错误信息,双击第一条 把ActionBarActivity前 ...

  8. vistual studio 2012 安装失败,提示Microsoft Vistual Studio 2012 Devenv找不到元素,等错误信息

    在安装vistual studio 2012过程中,出现安装失败,提示Microsoft Vistual Studio 2012 Devenv找不到元素,等错误信息 解决方法是更新相应的server补 ...

  9. Keil提示premature end of file错误 无法生成HEX文件

    今天舍友在使用Keil UV4的时候遇到一个问题:Keil提示premature end of file,无法生成hex文件. 代码是没有错误的.那么问题就出在设置上面了. 百度了一圈,发现很少人解答 ...

随机推荐

  1. 使用开源的PullToRefreshScrollView scrollTo和scrollby遇到的问题

    在项目中使用了开源的com.handmark.pulltorefresh.library 下拉刷新组件,当中使用了PullToRefreshScrollView ,须要调用scrollTo或者scro ...

  2. HDU 4544 湫湫系列故事――消灭兔子

    HDU 4544 Tags: 数据结构,贪心 Analysis: 将兔子的血量从大到小排序,将箭的杀伤力从大到小排序,对于每一个兔子血量, 将比他大的杀伤力大的剑压入优先队列,优先队列自己重写,让它每 ...

  3. 在Ubuntu下编译Assimp库

    在Ubuntu下编译Assimp库 怎样在Ubuntu下编译Assimp库?这是我曾经编译成功后做的笔记,供參考. 1.去以下的站点去下载Assimp库: http://assimp.sourcefo ...

  4. openfire数据库中文乱码问题

    1.首先数据库的编码设置为UTF-8 2.项目的编码也要设置为UTF-8 假设数据保存到数据库的时候还有乱码  就要改动openfire配置文件 在openfire主文件夹\conf\openfire ...

  5. Android中贝塞尔曲线的绘制方法

    贝塞尔曲线,很多人可能不太了解,什么叫做贝塞尔曲线呢?这里先做一下简单介绍:贝塞尔曲线也可以叫做贝济埃曲线或者贝兹曲线,它由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋.一般的矢量图形软件常 ...

  6. SharePoint数据视图无法打开

    最近在折腾SharePoint,之前列表常用的“数据视图”居然不能打开,提示“没有安装Sharepoit foundation 数据兼容组件”如图: 上网G下.度下有说要删除注册表.要安装office ...

  7. xcode-build/version-bump

    # xcode-build-bump.sh # @desc Auto-increment the build number every time the project is run. # @usag ...

  8. 矩形、占位符组件——axure线框图部件库介绍

    矩形组件和占位符没有太多的区别,这里我们主要讲解矩形组件的操作和使用,占位符的操作各位可以按照矩形的操作方法进行练习一下. 矩形组件是一个矩形,它可以用来做很多的工作,比如页面上需要一块蓝色的背景,就 ...

  9. 创建了一个基于最短路径规划geoserver的wms服务

    两点之间的文章书面请求随机最短路径sql功能,这篇文章是关于如何将上述到系统中的子功能. 1.geoserver登录 首先单击geoserver安装路径下的start Geoserver 待geose ...

  10. ftk学习记(对话框篇)

    [声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 前面谈到了输入法,首先看一看效果. 上面有4个输入框,大家能够分别试试,看看效果怎样. 今天,我 ...