编程时Keil中常见的错误 联系客服

发布时间 : 星期四 文章编程时Keil中常见的错误更新完毕开始阅读787529c00c22590102029d7c

*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 所给的函数是参量与函数原型中的不同 *ERROR 237:function already has body 试图定义已经定义过的函数 *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;