- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51编译器识别错类型有三种
致命错误:伪指令控制行有错,访问不存在的原文件或头文件等。
语法及语义错误:语法和语义错误都发生在原文件中。有这类错误时,给出提示但不产生目标文件,错误超过一定数量才终止编译。
警告:警告出现并不影响目标文件的产生,但执行时有可能发生问题。程序员应斟酌处理。
D.1致命错误
C_51 FATAL_ERROR
ACTION: 当前行为
LINE: 错误所在行
ERROR: 错误信息 terminated
或C_51 FATAL ERROR
ACTION: 当前行为
FILE: 错误所在文件
ERROR: 错误信息 terminated
C_51 TERMINATED C_51
ACTION的有关信息
*PARSING INVOKE-/#PRAGMA_LINE
在对#pragma指明的控制行作此法分析时出错。
*ALLOCATING MEMORY
系统分配存储空间时出错。编译较大程序需要512k空间。
*OPENING INPUT_FILE
打开文件时,未找到或打不开源文件/头文件。
*CREATE LIST_FILE/OBJECT_FILE/WORK_FILE
不能创建上述文件。可能磁盘满或文件已存在而且写保护。
*PARSING SOURCE_FILE/ANALYZING DECLARATIONS
分析源程序时发现外部引用名太多。
*GENERATING INTERMEDIATE CODE
源代码被翻译成内部伪代码,错误可能来源于函数太大而超过内部极限。
*WRITING TO FILE
在向文件(work,list,prelist或object file)写时发生错误。
(2)ERROR的有关信息
*MEMORY SPACE EXHAUSTED
所有可用系统空间耗尽。至少需要512k字节空间。没有足够空间,用户必须检查常驻内存的驱动程序是否太多。
*FILE DOES NOT EXIST
FILE行定的文本文件名未发现。
*CAN’T CREAT FILE
FILE行定义的文件不能被创建。
*SOURCE MUST COME FROM A DISK_FILE
源文件和头文件必须存在于硬盘或软盘上。控制台、CON、CI或类似设备不允许作为输入文件。
*MORE THAN 256 SEGMENTS/PUBLICS/EXTERNALS
受OMF_51的历史限制,一个源程序不能超过256个各种函数的类型段,256个全局变量,256个公共定义或外部引用名。不使用为变量可以减少使用的段数。使用static存储类型说明符可减少全局变量的使用数目。合理调整定义性说明的位置可减少外部引用名的使用数目。
*FILE WRITE ERROR
当向list、prelist、work或object文件中写内容时,由于空间不够而发生错误。
*NON_NULL ARGUMENT EXPECTED
所选的控制参数需要一个括号内的变量,如一个文件夹或一个数。
*“(”AFTER CONTROL EXPECTED
变量的左括号丢失。
*“)”AFTER PARAMETER EXPECTED
变量的右括号丢失。
*RESPECIFIED OR CONFLICTING CONTROL
所选的控制参数与前面发生冲突或重复,例如CODE和NOCOND
*BAD DECIMAL NUMBER
控制参数的数字含有非法数,需要使用十进制数。
*OUT OF RANGE DECIMAL NUMBER
控制参数的数字越界,例如OPTIMIZE的参量为0-5。
*IDENTIFIER EXPECTED
控制参数DEFINE需要一个标识符做参量,与C语言的规则相同。
*PARSE STACK OVERFLOW
分析栈溢出。可能是源程序包含特别复杂的表达式,或功能块嵌套数超过15。
*PREPOCESSOR: MACRO TO NESTED
宏扩展期间,预处理器的栈耗用太大。表明宏嵌套太多,或有递归宏定义。
*PREPOCESSOR: LINE TOO LONG(510)
宏扩展后行超过510个字符。
*CAN’T HAVE GENERAL CONTROL IN INVOCATION LINE
一般控制(如EJECT)不能是命令行的一部分,应将它们放入源文件“pragma”预处理行中。
D.2 语法及语义错误
D.2.1错误格式
这类错误在列表文件中产生如下格式的信息:
***ERRORnumberIN LINElineOFfile:error message
***WA
文档评论(0)