2022年C语言编程常见错误和程序调试 .pdf
《2022年C语言编程常见错误和程序调试 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言编程常见错误和程序调试 .pdf(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第 十 五章 :C 语 言编 程常 见 错 误和 程序 调试15.1 C 语 言 编 程 常 见 错 误如果提示工具连接错误,则表示KEIL安装程序有问题,重新卸载,并全部删除后重新再进行安装后即可。15.2 KEILC 程 序 调 试 常 见 错 误1.Compling :C:8051MANN.C Error:318:can t open file beep.h 说明在编译C:8051MANN.C 程序过程中由于main.c 用了指令 i nclude “beep.h ”,但却找不到所致解决方法编写一个 beep.h 的包含档并存入到c:8051 的工作目录中2.Compling:C:805
2、1LED.C Error 237: LedOn :function already has a body说明 LedOn( )函数名称重复定义即有两个以上一样的函数名称解决方法修正其中的一个函数名称使得函数名称都是独立的3.WARNING 206: DelayX1ms : missing function-prototype C:8051INPUT.C Error 267 : DelayX1ms :requires ANSI-style prototype C:8051INPUT.C 说明程序中有调用DelayX1ms 函数但该函数没定义即未编写程序内容或函数已定义但未作声明解决方法编写Del
3、ayX1ms 的内容编写完后也要作声明或作外部声明可在delay.h 的包含档声明成外部以便其它函数调用4.*WARNING 1:UNRESOLVED EXTERNAL SYMBOL SYMBOL:MUSIC3 MODULE:C:8051MUSIC.OBJ(MUSIC) *WARNING 2:REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL:MUSIC3 MODULE:C:8051MUSIC.OBJ(MUSIC) ADDRESS:0018H 说明程序中有调用MUSIC 函数但未将该函数的含扩档C 加入到工程档Prj 作编译和连接解决方法设MUSIC3 函
4、数在 MUSIC C 里将 MUSIC C 添加到工程文件中去5.*ERROR 107:ADDESS SPACE OVERFLOW SPACE: DATA SEGMENT: _DATA_GOUP_ LENGTH: 0018H *ERROR 118: REFERENCE MADE TO ERRONEOUS EXTERNAL SYMBOL: VOLUME MODULE: C:8051OSDM.OBJ (OSDM) ADDRESS: 4036H 说明 data 存储空间的地址范围为00 x7f,当公用变量数目和函数里的局部变量如果存储模式设为SMALL 则局部变量先使用工作寄存器R2R7 作暂存当存
5、储器不够用时则会以data 型别的空间作暂存的个数超过0 x7f 时就会出现地址不够的现象。解决方法将以data 型别定义的公共变量修改为idata 型别的定义15.3 C 编 译 器 错 误 信 息 中 文 翻 译1.Ambiguous operators need parentheses 不明确的运算需要用括号括起2.Ambiguous symbol xxx 不明确的符号3.Argument list syntax error 参数表语法错误4.Array bounds missing 丢失数组界限符5.Array size toolarge 名师资料总结 - - -精品资料欢迎下载 -
6、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 数组尺寸太大6.Bad character in paramenters 参数中有不适当的字符7.Bad file name format in include directive 包含命令中文件名格式不正确8.Bad ifdef directive synatax 编译预处理ifdef 有语法错9.Bad undef directive syntax 编译预处理undef 有语法错10.Bit field too large
7、 位字段太长11.Call of non-function 调用未定义的函数12.Call to function with no prototype 调用函数时没有函数的说明13.Cannot modify a const object 不允许修改常量对象14.Case outside of switch 漏掉了 case 语句15.Case syntax error Case 语法错误16.Code has no effect 代码不可述不可能执行到17.Compound statement missing 分程序漏掉 18.Conflicting type modifiers 不明确的类
8、型说明符19.Constant expression required 要求常量表达式20.Constant out of range in comparison 在比较中常量超出范围21.Conversion may lose significant digits 转换时会丢失意义的数字22.Conversion of near pointer not allowed 不允许转换近指针23.Could not find file xxx 找不到 XXX 文件24.Declaration missing ; 说明缺少 ; 25.Declaration syntax error 说明中出现语法错
9、误26.Default outside of switch Default 出现在 switch 语句之外27.Define directive needs an Identifier 定义编译预处理需要标识符28.Division by zero 用零作除数29.Do statement must have while Do-while 语句中缺少while 部分30.Enum syntax error 枚举类型语法错误31.Enumeration constant syntax error 枚举常数语法错误32.Error directive :xxx 错误的编译预处理命令33.Error
10、 writing output file 写输出文件错误34.Expression syntax error 表达式语法错误35.Extra parameter in call 调用时出现多余错误36.File name too long 文件名太长37.Function call missing ) 函数调用缺少右括号38.Fuction definition out of place 函数定义位置错误39.Fuction should return a value 函数必需返回一个值40.Goto statement missing label Goto 语句没有标号41.Hexadeci
11、mal or octal constant too large 16 进制或 8 进制常数太大42.Illegal character x 非法字符x 43.Illegal initialization 非法的初始化44.Illegal octal digit 非法的 8 进制数字45.Illegal pointer subtraction 非法的指针相减46.Illegal structure operation 非法的结构体操作47.Illegal use of floating point 非法的浮点运算48.Illegal use of pointer 指针使用非法49.Imprope
12、r use of a typedefsymbol 类型定义符号使用不恰当50.In-line assembly not allowed 不允许使用行间汇编51.Incompatible storage class 存储类别不相容52.Incompatible type conversion 不相容的类型转换名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 53.Incorrect number format 错误的数据格式54.I
13、ncorrect use of default Default 使用不当55.Invalid indirection 无效的间接运算56.Invalid pointer addition 指针相加无效57.Irreducible expression tree 无法执行的表达式运算58.Lvalue required 需要逻辑值0 或非 0 值59.Macro argument syntax error 宏参数语法错误60.Macro expansion too long 宏的扩展以后太长61.Mismatched number of parameters in definition 定义中参
14、数个数不匹配62.Misplaced break 此处不应出现break 语句63.Misplaced continue 此处不应出现continue 语句64.Misplaced decimal point 此处不应出现小数点65.Misplaced elif directive 不应编译预处理elif 66.Misplaced else 此处不应出现else 67.Misplaced else directive 此处不应出现编译预处理else 68.Misplaced endif directive 此处不应出现编译预处理endif 69.Must be addressable 必须是可
15、以编址的70.Must take address of memory location 必须存储定位的地址71.No declaration for function xxx 没有函数 xxx 的说明1.No stack 缺少堆栈72.No type information 没有类型信息73.Non-portable pointer assignment 不可移动的指针(地址常数)赋值2.Non-portable pointer comparison 不可移动的指针(地址常数)比较3.Non-portable pointer conversion 不可移动的指针(地址常数)转换4.Not a
16、valid expression format type 不合法的表达式格式5.Not an allowed type 不允许使用的类型6.Numeric constant too large 数值常太大7.Out of memory 内存不够用8.Parameter xxx is never used 能数 xxx 没有用到9.Pointer required on left side of - 符号 -的左边必须是指针10.Possible use of xxx before definition 在定义之前就使用了xxx(警告)11.Possibly incorrect assignme
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言编程常见错误和程序调试 2022 语言 编程 常见 错误 程序 调试
限制150内