Keil中的常见错误和警告(2)

2020-04-03 12:54

OR/复合 OR(|,|=) AND/复合 AND(&,&=) XOR/复合 XOR(^,^=)

位或常数的安位比较(= =,!=) 取反(~) *ERROR 194:’*’indirection to object of unknown size 间接操作符*不能用于 void指针(void*),因为指针所指的对象的大小时未知的 *ERROR 195:’*’illegal indirection

间接操作符*不能用于非指针变量 *ERROR 196:mspace probably invalid

产生此警告是因为某些常数值赋给指针并且常数没有形成一个有效的指针值,有效的指针常

数类型为 long/unsigned long。编译器对指针对象采用 24bit(3 字节),低 16 位表示偏

移,高 8 位表示存储类的选择,在低字节中,值从1 到 5 表明了xdata/pdata/idata/data/ 和 code 的存储类

*ERROR 197:illegal pointer assignment

试图将一个非法变量赋给指针,只有另一个指针或指针变量可以赋给指针 *ERROR 198:size of returns zero

求某些对象长度得到 0,如果对象是外部的或一个数组中并非所有维的大小都是已知时得到

0,这时候该值可能是错的。

*ERROR 199:left size of’->’requires struct/union pointer ->操作符的左边变量必须是结构或变量 *ERROR 200:left size of ‘.’requires struct/union 操作符的左边变量必须是结构/联合 *ERROR 201:undefined struct/union tag

所给的结构/联合标记名是未知的 *ERROR 202:undefined identifier 所给的标示符未定义 *ERROR 203:bad storage class(nameref)

该错误表示编译器的内部有问题 *ERROR 204:undefined member

所给的结构/联合成员名未定义 *ERROR 205:cannot call an interrupt function

中断函数不能像普通函数那样调用,因为这种函数的头端和尾端是为中断特殊编码的

*ERROR 206:missing function-prototype 调用的函数缺少原型说明

*ERROR 207:declared with ‘void’ parameter list

用 void参数说明的函数不接受调用者传来的参数 *ERROR 208:too many actual parameter 函数调用包含了多余的实参 *ERROR 209:too few actual parameter

函数调用时传递的实参过少 *ERROR 210:too many nested calls

超过了10 个函数嵌套调用的极限 *ERROR 211:call not to a function

函数调用时没有函数的地址或未对指向函数的指针赋值 *ERROR 212:indirect call with parameter 由于参数传递方法的限制,通过指针的间接函数调用不能直接作为实参。这种参数传递方法

要求被调用的函数名已知,因为参数的写入要被写入调用函数的数据段。然而间接调用时函

数的的名字时未知的

*ERROR 213:left side of assign_op not an lvalue 在赋值操作符左边要求可变的对象 *ERROR 214:cannot cast non_pointer to pointer 非指针不能转化为指针

*ERROR 215:cannot cast pointer to not_int/pointer

指针可以转化为另一个指针或整数,但不能转化为其他类型 *ERROR 216:subscript on non_array or too many dimensions 对非数组使用了下标或数组维数过多 *ERROR 217:non_integral index

数组的下标表达式必须是整型类型 *ERROR 218:void_type in controlling expression

While,for 或 do while语句中表达式不能是 void类型 *ERROR 219:long constant truncated to int

企图把长整型常量截断为整型数是错误的 *ERROR 220:illegal constant expression 非法常量表达式

*ERROR 221:non_constant case/dim expression

Case值或下标值([])要求用常量表达式 *ERROR 222:div by zero *ERROR 223:mod by zero

编译器检测到 0 除或 0 模的错误 *ERROR 224:illegal operation on float/double

AND 和NOT一类的运算符不允许作用于float/double *ERROR 225:expression too complex ,simplify 表达式太复杂,必须简化

*ERROR 226:duplicate struct/union/enum tag 结构/联合/枚举类型中有重复标记 *ERROR 227:not a union tag

所给的标记名虽已定义,但不是联合的标记 *ERROR 228:not a struct tag

所给的标记名虽已定义,但不是结构的标记 *ERROR 229:not an enum tag

所给的标记名虽已定义,但不是枚举的标记

*ERROR 230:unknown struct/union/enum tag 所给的结构/联合/枚举标记名未定义 *ERROR 231:redefinition

所给的名字已经定义,不能再定义 *ERROR 232:duplicate label

所给的标号已经订义 *ERROR 233:undefined label

当对函数进行分析后,编译器检查到函数有未定义的标号,发出错误信息 *ERROR 234:‘{’scope stack overflow(31)

超过了最大为 31 个的功能嵌套极限,多余的块被忽略 *ERROR 235:parameter:different type 函数实参类型与函数原型中的不同 *ERROR 236:different length of parameter lists

所给的函数是参量与函数原型中的不同 Compling:C:\\8051\\LED.C

Error 237:’LedOn’:function already has a body // 试图定义已经定义过的函数

说明 LedOn( )函数名称重复定义,即有两个以上一样的函数名称,解决方法修正其中的一个

函数名称使得函数名称都是独立的。 *ERROR 238:duplicate member *ERROR 239:duplicate parameter

重复定义结构成员或函数参数 *ERROR 240:more than 128 local bit’s 位变量定义总数不能超过128 *ERROR 241:auto segment too large

局部对象要求的空间超过了该模式的最大值。最大栈长定义如下:SMALL-128 字

节,COMPACT-256字节,LARGE-64k *ERROR 242:too many initializers 初始化对象超限 *ERROR 243:string out of bounds

串中字符数超过了字符数组要求初始化的字符数 *ERROR 244:can’t initialize .bad type or class 试图初始化位或sfr

*ERROR 245:unknown pragma, line ignored

未知的pragma 语句,因此该行被忽略 *ERROR 246:floating point error

本错误发生在浮点变量超过 32 位有效字长时,32 位 IEEE 格式的浮点值的取值范围是±

1.75494E-38~±3.402832E+38

*ERROR 247:non_address +/-constant initializer

有效的初始化表达式必须是非地址量+/-常量 *ERROR 248:aggregate initialization needs curly braces

所有的组合变量(数组/结构或联合)初始化时要用花括号括起来

*ERROR 249:segment:segment too large

编译器检测到过大的数据段,最大数据段长取决于存储器空间 *ERROR 250:‘\\esc’;value exceeds 255

串常数中\\esc转义序列的值超过有效域 *ERROR 251:illegal octal digit

不是有效的八进制数字

*ERROR 252:misplace primary control、line ignored

一次性使用的编译控制伪指令必须在 C模块开头指定,在#INCLUDE 语句和变量说明之前

*ERROR 253:internal ERROR(ASMGEN\\CLASS)

这种错误在以下情况下发生 ⑴内部函数(如 testbit)被不正确激活。它发生在函数原型和

实参表不存在匹配问题的时候。基于这个原因,头文件中的使用要适当(intrins.h,string.h) ⑵ C51识别出存在内部一致性错误,请向您的销售代理商查询 *ERROR 255:switch expression has illegal type

Switch语句中的case语句必须具有类型(u)char,(u)int 或(u)short,其他类型不允许(如 bit)

*ERROR 256:conflicting memory model

Alien 属性的函数只能使用 SMALL模式。函数的参数必须位于内部数据存储空间

*ERROR 257:alien function can not be reentrant

“alien”属性的函数不能同时具有“reentrant”属性,函数的参数不能通过重入栈传递,这

也适用于外部“alien”声明和“alien”函数

*ERROR 258:mspace illegal on struct/union member

不能为结构联合成员指定存储空间,但指向对象的指针可以 *ERROR 259:pointer: different mspace

当为指针赋值或做指针比较时,指针未指向存储在同一存储空间的对象时,会产生错误或者 警告。如:

Char xdata *px;/*px to char in xdata memory*/ Char code *pc;/*pc to char in code memory*/ Void main() { char c;

If(px==pc)++c;/*warning 259*/ }

*ERROR 260:pointer truncation

指针转换时部分偏移量被截断,此时指针常量(如 char xdata)转为一个具有较小偏移区的

指针(如 char idata)

*ERROR 261:bit in reentrant function

重入函数不能包含位变量,因为位变量不能存于重入栈,而只能位于MCS51CPU的可位寻

址存储区中如: Void test () reentrant { bit b0;/*illegal*/ Static bit b1;/*legal*/ }

*ERROR 262:’using/disable’: function returns bit

使用属性 using选择寄存器组的函数或使用关中断(#pragma disable)功能的函数不能返回 bit类型。如:

Bit test ()using 3/*error 261*/ { bit b0; return(b0); }

*ERROR 263:save-stack overflow/underflow

“#pragama save”最大嵌套级为 8 级。Save 和 restore 指令按 FIFO 原则工作

*ERROR 264:intrinsic:declaration/ activation error 内部参数定义不正确

*ERROR 265:recursive call to non_reentrant function

发现非重入函数被递归调用。直接递归用生成代码可有效查出,间接递归调用由 L51 发现

L51 连接定位器使用错误提示

Error 267 :’DelayX1ms ‘:requires ANSI-style prototype C:\\8051\\INPUT.C

说明:程序中有调用 DelayX1ms 函数,但该函数没定义即未编写程序内容或函数已定义但未作 声明

解决方法:编写 DelayX1ms 的内容,编写完后也要作声明或作外部声明,可在 delay.h 的包

含文件声明成外部函数以便其它函数调用。 Error 268:任务定义错误任务ID/优先级/using 任务声明错误

Error 271: asm/endasm 控制放错地方

asm和 endasm声明不能嵌套endasm要求一个汇编块前面用 asm开头例如 #pragma asm ...

汇编指令

... #pragma endasm

Error 272: asm 要求激活 SRC控制

在一个源文件中使用asm和endasm 要求文件用SRC控制编译那么编译器就会生成汇编源文件

然后可以用 A51汇编

Error 273: asm/endasm 在包含文件中不允许

在包含文件中不允许 asm和 endasm 为了调试在包含文件不能有任何的可执行代码


Keil中的常见错误和警告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:供电所所长述职报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: