1、3、连接中的常见错误主要错误类似于“undefined symbol _print in modula xxx”(print没有定义),通常是函数名书写错误。4、运行中的常见错误Abnormal program termination 程序异常终止。通常是由于内存使用不当所致。Floating point error : Domain 或Divide by 0 运算结果不是一个数或被0 除Null pointer assignment 对未初始化的指针赋值,程序有严重错误。User break 在运行程序时终止。5、可跟踪调试的错误XXXnotanargument该标识符不是函数的参数Arra
2、yboundsmissing缺少数组界限符sizetoolarge数组规模太大Badfilenameformatinincludedirective在包含指令中的文件名格式不正确.Callofnon-function调用未经过定义的函数.Cannotmodifyaconstobject对常量不能进行修改.Characterconstantlong字符常量太大Constantexpressionrequired数组定义的时候,数组大小要求是常数Compoundstatment复合语句漏掉符号Declarationsyntaxerror宣告语法错误Expression表达式语法错误Extrapar
3、ametercalltosum调用函数时使用了过多的参数Illegalusefloatingpoint浮点数的不合法使用piontersubtraction不合法的指针相减Invalidpointeraddition无效的指针相加Outmemory内存不足Statement;语句后面漏掉分号.调试方法利用Run菜单可以进行程序的跟踪调试(1)GO to Cursor ()选择该选项使程序执行到光标所在行首先将光标移到某行(一般为可执行),选择该功能项,则程序执行到该行的前一行暂停。此时程序处于跟踪调试状态,并有亮条显示在暂停处,此时可以查询变量或表达式的值。(2)Trace into ()执行
4、一条语句或一行暂停此时程序处于跟踪调试状态,并有亮条显示在暂停处。该选项可跟踪到被调函数的内部。(3)Step over (该选项将自定义函数当作一个语句执行,不跟踪到函程序的内部。(4)Debug 菜单程序处于跟踪状态时,可使用该菜单的选项。其主要是使用Evaluate目的是查询或更新变量或表达式的值。选择Evaluate功能后,系统弹出一个对话框。该对话框包含三个选项区域:Evaluate域可以输入一个含有目前代码中(程序暂停区的作用域)正在使用的变量名、或含变量的表达式、或常量表达式。按回车键后,在Result域中显示变量或表达式的值。还可以用New value域进行调试。如果调试程序时
5、发现Result域显示的某变量或表达式的值不正确,并能估计出该变量或表达式的值,则可以将该值输入到New value域,继续执行程序,其目的是肯定错误发生处是否在当前位置之前。如果输入这个正确的值并将程序继续执行完毕而结果正确,说明在目前暂停处之前已经发生错误而之后无错误。(5)Break/Watch用于设置断点和监视表达式。选择Add Watch功能选项,系统将弹出一个菜单,在Add Watch框中输入变量名或表达式,按回车键后,系统在屏幕底部开辟一个窗口并显示 该变量或表达式的值。错误总汇:Ambiguousoperatorsneedparentheses:不明确的运算需要用括号括起sym
6、bolxxx:不明确的符号Argumentlisterror:参数表语法错误丢失数组界限符toolarge数组尺寸太大characterparamenters参数中有不适当的字符包含命令中文件名格式不正确ifdefsynatax编译预处理ifdef有语法错undef编译预处理undef有语法错Bitfield位字段太长调用未定义的函数functionwithnoprototype调用函数时没有函数的说明不允许修改常量对象Caseoutsideswitch漏掉了case语句语法错误Codehaseffect代码不可述不可能执行到statementmissing分程序漏掉Conflictingty
7、pemodifiers不明确的类型说明符要求常量表达式outrangecomparison在比较中常量超出范围Conversionmaylosesignificantdigits转换时会丢失意义的数字nearallowed不允许转换近指针Couldfind找不到XXX文件说明缺少;说明中出现语法错误Default出现在switch语句之外Defineneedsidentifier定义编译预处理需要标识符Divisionbyzero用零作除数DomusthavewhileDo-while语句中缺少while部分Enum枚举类型语法错误Enumeration枚举常数语法错误Errorxxx错误的编
8、译预处理命令writingoutput写输出文件错误表达式语法错误调用时出现多余错误File文件名太长Function)函数调用缺少右括号Fuctiondefinitionplace函数定义位置错误shouldreturnvalue函数必需返回一个值GotolabelGoto语句没有标号Hexadecimaloroctal16进制或8进制常数太大x非法字符xinitialization非法的初始化digit非法的8进制数字subtraction非法的指针相减structureoperation非法的结构体操作非法的浮点运算指针使用非法Impropertypedefsymbol类型定义符号使用不
9、恰当In-lineassembly不允许使用行间汇编Incompatiblestorageclass存储类别不相容conversion不相容的类型转换Incorrectnumber错误的数据格式defaultDefault使用不当indirection无效的间接运算指针相加无效Irreducibletree无法执行的表达式运算Lvalue需要逻辑值0或非0值Macro宏参数语法错误expansion宏的扩展以后太长Mismatchedparameters定义中参数个数不匹配Misplacedbreak此处不应出现break语句continue此处不应出现continue语句decimal此处不
10、应出现小数点elif不应编译预处理elifelse此处不应出现else此处不应出现编译预处理elseendif此处不应出现编译预处理endifMustbeaddressable必须是可以编址的takeaddressmemorylocation必须存储定位的地址Nodeclarationfor没有函数xxx的说明stack缺少堆栈information没有类型信息Non-portable不可移动的指针(地址常数)赋值不可移动的指针(地址常数)比较不可移动的指针(地址常数)转换Notvalid不合法的表达式格式不允许使用的类型Numeric数值常太大内存不够用Parameterisneveruse
11、d能数xxx没有用到Pointeronleftside-符号-的左边必须是指针Possiblebefore在定义之前就使用了xxx(警告)Possibly赋值可能不正确Redeclaration重复定义了xxxRedefinitionidenticalxx的两次定义不一致Registerallocationfailure寄存器定址失败Repeatcountlvalue重复计数需要逻辑值Sizearrayknown结构体或数给大小不确定语句后缺少StructureunionX构体或联合体语法错误结构体尺寸太大Subscripting下标缺少右方括号Superfluous&函数或数组中有多余的Su
12、spicious可疑的指针转换Symbollimitexceeded符号超限Toofew函数调用时的实参少于函数的参数不manycasesDefault太多(switch语句中一个)warningmessages错误或警告信息太多说明中类型太多muchauto函数用到的局部存储太多globaldatadefined文件中全局数据太多Twoconsecutivedots两个连续的句点Typemismatch数xxx类型不匹配redeclarationxx重定义的类型不匹配Unablecreate无法建立输出文件xxxopen无法打开被包含的文件xxxinput无法打开输入文件xxxUndefin
13、ed没有定义的标号xxx没有定义的结构xxx没有定义的符号xxxUnexpectedendcommentstartedline从xxx行开始的注解尚未结束文件不能结束conditional从xxx开始的条件语句尚未结束文件不能结束Unknownassembleinstruction未知的汇编结构option未知的操作preprocessordirective:不认识的预处理命令xxxUnreachablecode无路可达的代码Unterminatedstring字符串缺少引号User用户强行中断了程序VoidfunctionsVoid类型的函数不应有返回值Wrongarguments调用函数的参数数目错xxx不是参数partxxx不是结构体的一部分(xx语句缺少左括号xxx语句缺少右括号xxx缺少分号declaredbut说明了xxx但没有使用assignedwhich给xxx赋了值但未用过Zerolength结构体的长度为零