keil c语言编程常见错误分析.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Keil C语言编程常见错误分析 本文档总结了 Keil C 语言编程中常见的错误分析,涵盖了 Warning 280、Warning 206、Error 318、Error 237、Warning 16、Warning 6、Warning 206、Warning 1 和 Error 107 等错误类型,并提供了相应的解决方法。 一、 Warning 280: ’i’: unreferenced local variable * 说明:局部变量 i 在函数中未作任何的存取操作 * 解决方法:消除函数中 i 变量的宣告及即定义的参数在程序中并未调用 二、 Warning 206: ’Music3’: missing function-prototype * 说明:Music3() 函数未作宣告或未作外部宣告,所以无法给其他函数调用 * 解决方法:将 void Music3(void) 写在程序的最前端作宣告;如果是其他文件的函数,则要写成 extern void Music3(void),即作外部宣告 三、 Error 318: can’t open file ‘beep.h’ * 说明:在编译 C:\8051\MANN.C 程序过程中由于 main.c 用了指令#include “beep.h”,但却找不到 * 解决方法:编写一个 beep.h 的包含档并存入到 c:\8051 的工作目录中 四、 Error 237: ’LedOn’: function already has a body * 说明:LedOn() 函数名称重复定义,即有两个以上一样的函数名称 * 解决方法:修正其中的一个函数名称,使得函数名称都是独立的 五、 *WARNING 16: UNCALLEDCALL SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_DELAYX1MS?DELAY * 说明:DelayX1ms() 函数未被其它函数调用,也会占用程序记忆体空间 * 解决方法:去掉 DelayX1ms() 函数或利用条件编译 #if …..#endif,可保留该函数并不编译 六、 *WARNING 6 :XDATA SPACE MEMORY OVERLAP FROM : 0025H TO: 0025H * 说明:外部资料 ROM 的 0025H 重复定义地址 * 解决方法:外部资料 ROM 的定义如下 Pdata unsigned char XFR_ADC _at_0x25,其中 XFR_ADC 变量的名称为 0x25,请检查是否有其它的变量名称也是定义在 0x25 处并修正它 七、 WARNING 206: ’DelayX1ms’: missing function-prototype * 说明:程序中有调用 DelayX1ms 函数,但该函数没定义,即未编写程序内容或函数已定义但未作宣告 * 解决方法:编写 DelayX1ms 的内容,编写完后也要作宣告或作外部宣告,可在 delay.h 的包含档宣告成外部以便其它函数调用 八、 *WARNING 1: UNRESOLVED EXTERNAL SYMBOL SYMBOL:MUSIC3 * 说明:程序中调用了 MUSIC3 函数,但该函数未被定义或未作宣告 * 解决方法: 1. 是文件没有添加到工程里。 2. 可能是因为存在没有被调用的已经定义的函数。 3. 不知道你有没有把 Source group 组下面的 A51.C 删掉,如果没有删,在 A51.c 上点右键,选择 remove file " "。 4. 建一个新的 c 文件,里面写一个空的函数,把该文件添加到 project 中,注意该文件不能再选 generate assembler SRC file 和 assemble SRC file 选项。 5. 建一个新的 c 文件,把主文件中的几个函数移至该文件,把该文件添加到 project 中,注意该文件不能再选 generate assembler SRC file 和 assemble SRC file 选项。 九、 *WARNING 2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL:MUSIC3 MODULE:C:\8051\MUSIC.OBJ(MUSIC) ADDRESS:0018H * 说明:在 MUSIC3 函数里面 MUSIC 这个参数有使用,没有申明。或者申明了没有实体。也就是说对于这个参数,编译器无法解析。 十、 *ERROR 107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: _DATA_GOUP_ LENGTH: 0018H * 说明:data 空间已经不够用,原因是你可能有好多函数,而函数内部的局部变量又没有定义其空间,这种情况下,系统会将变量分配到你在 Otions for Target 对话框里的设置的空间。如果你在下图所示中的 Memory Model 里设置成 Small:variables in DATA,则 DATA 空间很快便用完,导致 data 空间不足。 * 解决方法:检查并优化函数中的局部变量的定义和使用,尽量减少不必要的变量声明。
剩余35页未读,继续阅读
- 粉丝: 87
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助