今天写一个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这个名字啊,够狠,切记切记,呵呵。

最新文章

  1. java常用英文解释
  2. winform碎片
  3. bootstrap-15
  4. Linux内核TCP/IP参数分析与调优
  5. jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)
  6. CSS制作图片水平垂直居中
  7. C# 扩展方法奇思妙用高级篇六:WinForm 控件选择器
  8. 接受、online、见刊时,期刊的 IF 都不同,究竟算发几分期刊?
  9. HOJ 1096 Divided Product (DFS)
  10. JSON基础学习
  11. oracle函数和存储过程有什么区别
  12. Database 2 Day DBA guide_Chapter2
  13. 转战Hexo
  14. Java面向对象接口的应用实例练习
  15. crontab 定时任务守护程序,停止服务器时出现 job for * canceled
  16. 中国象棋游戏Chess(2) - 走棋
  17. 被遗忘的C结构体打包技术
  18. Petrozavodsk Winter Camp, Day 8, 2014, Rectangle Count
  19. vue 组件发布记录
  20. Spring Boot整合MyBatis(使用Spring Tool Suite工具)

热门文章

  1. linux登录windows服务器
  2. LoadRunner监控数据库服务器
  3. WEB应用如何解决安全退出问题
  4. 【Demo 0009】Android 组件(BroadcastReceiver)
  5. Tui-x简单介绍
  6. 【LeetCode从零单排】No 3 Longest Substring Without Repeating Characters
  7. Custom draw 和 Owner draw 的区别
  8. 把HTML5网页封装成APP,APK的方法
  9. TTL 超时问题
  10. asp.net web api帮助文档的说明