版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附录B Keil C51 编译常见错误与警告在利用Keil C51进行单片机软件程序的编写、调试过程中,经常会出现这样的现象,因为疏忽大意或是对于程序编写规则的不熟悉等原因,工程编译不能正常通过,导致最终未能生成单片机用于下载烧片所需的.hex文件。以下列举出了一些在工程编译过程中,常见的警告或错误的提示信息,以及解决这些警告或错误的具体方法;给出了常见编译器错误信息的查找方法和Keil C51编译器常见错误与警告提示信息中英文对照表,供读者在工程调试和编译过程中参考。一、常见错误与警告现象现象一:部分程序如下:ET0=1 ET1=1; 错误编号:C141原因:程序LED.C第49行语句前缺少
2、分号。解决方法:语句 ET0=1后加;即:ET0=1;现象二:部分程序如下:ET0=1;ET1=1; 错误编号:C100、C141原因:程序LED.C里53行有中文标点符号“;”。解决方法:将中文符号改变成英文符号“;”现象三:警告编号:L16原因:delay2( )函数未被其它函数调用,它会占用程序存放空间。解决方法:(1)删除delay2( )函数;(2)检查程序,某调用该子函数;(3)利用注释“/* */”将整个delay2()函数体包含,可保留该函数但不被编译。现象四:警告/错误编号:C206,C267,C231原因:delay函数未定义,即未编写程序内容或函数已定义但未作声明。解决方
3、法:(1)将该子函数放在调用它的主调函数前; (2) 在调用它的主调函数前,对该函数进行声明。现象五: 警告编号:C318原因:在编译main.c 程序过程中由于main.c 使用了头文件包含include “buzzer.h”,但编译器却找不见buzzer.h头文件。解决方法:找到相应的buzzer.h或编写buzzer.h文件,并存入到c:keil的相关目录中。现象六:错误编号:C237原因:delay函数名称重复定义,即有两个重名的函数。解决方法:改变其中一个函数的名称,使两个函数名称不相同。现象七:错误编号:C202原因:变量sh未作定义声明,可能是拼写错误或是未区分大小写。解决方法:
4、(1)在使用该变量前对该变量定义声明;(2)在确定该变量不使用时,将其删除;(3)改正错误的拼写。二、Keil C51错误与警告的查询前述列举的警告和错误,仅仅是编译软件给出错误或警告的一个部分,对于大多数的错误和警告对应的原因及解决实例,读者可以参照下面的过程自行查找Keil C51自带的帮助文件,以求解决可能出现的问题。Keil C51错误与警告包含在名为errors.chm的文件中,该文件一般存放在keil安装目录中,其路径为KeilC51HLPerrors.chm,如下图所示。打开该文件,其中列出了600多条错误与警告的帮助信息,读者可以自行参阅。三、Keil C51编译器常见错误与警
5、告提示信息中英文对照表序号英文提示信息中文译文1Ambiguous operators need parentheses不确定的操作需要用括号括起来2Ambiguous symbol xxx不确定的符号3Argument list syntax error参数表语法错误4Array bounds missing数组界限符丢失5Array size toolarge数组尺寸太大6Bad character in paramenters参数中有不适宜的字符7Bad file name format in include directive包含命令中有不正确的文件名格式8Bad ifdef dire
6、ctive synatax编译预处理ifdef 有语法错9Bad undef directive syntax编译预处理undef 有语法错10Bit field too large位字段太长11Call of non-function调用了未定义的函数12Call to function with no prototype调用函数时没有函数的说明13Cannot modify a const object不允许修改常量对象14Case outside of switchcase 语句在switch语句外15Case syntax errorCase 语法错误16Code has no eff
7、ect代码不能执行17Compound statement missing 复合语句丢失18Conflicting type modifiers不明确的类型说明符19Constant expression required要求常量表达式20Constant out of range in comparison在比较中常量超出范围21Could not find file xxx找不到XXX 文件22Declaration missing ;声明缺少“;”23Declaration syntax error声明中出现语法错误24Default outside of switchDefault 出
8、现在switch 语句之外25Define directive needs an identifier定义编译预处理需要标识符26Division by zero用零作除数27Do statement must have whileDo-while 语句中必须while 28Enum syntax error枚举类型语法错误29Enumeration constant syntax error枚举常数语法错误30Error directive :xxx错误的编译预处理命令31Error writing output file写输出文件错误32Expression syntax error表达式
9、语法错误33Extra parameter in call调用时出现多余错误34File name too long文件名太长35Function call missing )函数调用缺少括号“)”36Fuction definition out of place函数定义位置错误37Fuction should return a value函数必需返回一个值38Hexadecimal or octal constant too large16 进制或8 进制常数太大39Illegal character x非法字符x40Illegal initialization非法的初始化41Illegal
10、 Hexadecimal digit非法的16 进制数字42Illegal pointer subtraction非法的指针相减43Illegal use of floating point非法的浮点运算44Illegal use of pointer非法使用指针45Improper use of a typedefsymbol类型定义符号使用不恰当46Incompatible storage class不相容的存储类别47Incompatible type conversion不相容的类型转换48Incorrect number format错误的数据格式49Incorrect use of
11、 defaultDefault 使用不当50Invalid indirection无效的间接运算51Invalid pointer addition无效的指针相加52Irreducible expression tree无法执行的表达式运算53Lvalue required需要逻辑值54Macro argument syntax error宏参数语法错误55Macro expansion too long宏扩展后太长56Mismatched number of parameters in definition定义中参数个数不匹配57Misplaced break此处不应出现break 语句58
12、Misplaced continue此处不应出现continue 语句59Misplaced decimal point此处不应出现小数点60Must be addressable必须是可以编址的61Must take address of memory location必须存储定位的地址62No declaration for function xxx函数xxx没有声明63No type information没有类型信息64Not a valid expression format type不合法的表达式格式65Not an allowed type不允许使用的类型66Numeric co
13、nstant too large数值常太大67Out of memory内存不够用68Parameter xxx is never used参数xxx 没有用到69Pointer required on left side of -符号-的左边必须是指针70Possible use of xxx before definition在定义之前就使用了xxx(警告)71Possibly incorrect assignment赋值可能不正确72Redeclaration of xxx重复定义了xxx73Redefinition of xxx is not identicalxxx 的两次定义不一致
14、74Register allocation failure寄存器定址失败75Repeat count needs an lvalue重复计数需要逻辑值76Statement missing ;语句后缺少“;”77Sub scripting missing 下标缺少右方括号78Symbol limit exceeded符号超限79Too few parameters in call函数调用时的实参少于函数的参数不80Too many default cases(switch 语句中)Default 太多81Too many error or warning messages错误或警告信息太多82
15、Too many type in declaration声明中类型太多83Too much auto memory in function函数用到的局部存储太多84Too much global data defined in file文件中全局数据太多85Two consecutive dots两个连续的句点86Type mismatch in parameter xxx参数xxx 类型不匹配87Type mismatch in redeclaration of xxxxxx 重定义的类型不匹配88Unable to create output file xxx无法建立输出文件xxx89Un
16、able to open include file xxx无法打开被包含的文件xxx90Unable to open input file xxx无法打开输入文件xxx91Undefined label xxx没有定义的标号xxx92Undefined structure xxx没有定义的结构xxx93Undefined symbol xxx没有定义的符号xxx94Unexpected end of file in comment started on line xxx从xxx 行开始的注解尚未结束文件不能结束95Unexpected end of file in conditional started on line xxx从xxx 开始的条件语句尚未结束文件不能结束96Unknown option未知的操作97Unknown preprocessor directive: xxx不认识的预处理命令xxx98Unreachable code不能执行的代码99Unterminated string or character constant字符串缺少引号100Void functions may not return a valueVoid 类型的函数不应有返回值101Wrong number of arguments调用函数的参数数目错102
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 休闲场地地暖安装合同模板
- 水电站水塔建设工程合同
- 《我国商业银行理财产品质押融资制度探究》
- 《我国反垄断法适用除外制度研究》
- 劳动合同分公司员工离职管理3篇
- 合同条件培训讲义3篇
- 地下餐饮加工设施凿井协议3篇
- 淘宝购物合同范例
- 合同解除的状告3篇
- 转上合同范例
- 大学生国家安全教育智慧树知到期末考试答案2024年
- 商场保洁服务日常巡检方案
- 认真复习努力备考班会课件
- 中医培训课件:《艾灸技术》
- 组织架构优化调整模板
- 腾讯产品营销策略分析
- 国家开放大学《理工英语4》综合练习参考答案
- 母婴行业形势分析
- 河北省保定市2023-2024学年高二上学期期末调研数学试题(含答案解析)
- LS/T 1234-2023植物油储存品质判定规则
- 先进性与广泛性的统一
评论
0/150
提交评论