c51错误.doc
文本预览下载声明
c51错误C51编译器识别错类型有三种1、致命错误:伪指令控制行有错,访问不存在的原文件或头文件等。2、语法及语义错误:语法和语义错误都发生在原文件中。有这类错误时,给出提示但不产生目标文件,错误超过一定数量才终止编译。3、警告:警告出现并不影响目标文件的产生,但执行时有可能发生问题。程序员应斟酌处理。D.1 致命错误C_51 FATAL_ERRORACTION: 当前行为LINE: 错误所在行ERROR: 错误信息 terminated或C_51 FATAL ERRORACTION: 当前行为FILE: 错误所在文件ERROR: 错误信息 terminatedC_51 TERMINATED C_51(1) 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 EXISTFILE 行定的文本文件名未发现。*CAN’T CREAT FILEFILE 行定义的文件不能被创建。*SOURCE MUST COME FROMA DISK_FILE源文件和头文件必须存在于硬盘或软盘上。控制台、CON、CI 或类似设备不允许作为输入文件。*MORE THAN 256 SEGMENTS/PUBLICS/EXTERNALS受OMF_51的历史限制,一个源程序不能超过256个各种函数的类型段,256个全局变量,256 个公共定义或外部引用名。不使用为变量可以减少使用的段数。使用static 存储类型说明符可减少全局变量的使用数目。合理调整定义性说明的位置可减少外部引用名的使用数目。*FILEWRITE ERROR当向list、prelist、work或object文件中写内容时,由于空间不够而发生错误。*NON_NULLARGUMENT 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***WARINGnumberIN LINElineOFfile:warning messagenumber表示错误行;line表示源文件或头文件中与错误或警告相关的行;file指明了错误所在的源文件或头文件;D.2.2 错误信息及可能发生的原因*ERROR100:unprintab
显示全部