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

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

*ERROR 132:not in formal parameter list 函数内参数声明使用的名字未出现在参数表中 *ERROR 133:char function(v0,v1,v2) Char*v0,*v1,*v5;/ *’v5’在形参中未出现

*ERROR 134:xdata/idata/pdata/data on function not permitted

函数总是驻留于0x5xxxx 的code存储区,不能位于xdata/idata/pdata/data 空间 *ERROR 135:bad storage class for bit

位变量的定义可以接受static或extern的存储类,用REGIESTER和ALIEN 都是非法的 *ERROR 136:‘void’on variable

‘void’类型只允许作为函数的返回类型或与指针类型合用(void*) *ERROR 137:illegal parameter type:’function’ 函数参数的类型不能是函数,然而函数指针可以作为参数

*ERROR 138:interrupt ()may not receive or return value (s) 中断函数既不能有参数又不能有返回值 *ERROR 139:illegal use of ‘alien’

关键字alien 将函数定义为PL/M51 规定的过程与函数结构。这意味着C函数中有参数的缩 记符号(即funct(?);)时是不能用alien的 *ERROR 140:bit in illegal memory-space

位变量的定义可包含修饰符DATA,如果无修饰符则假定为DATA。因为位变量始终位于 0x4xxx 的内部数据存储器中,当试图采用其他存储空间就会产生这个错误。 *ERROR 141:NEAR:expected 编译器所见的单词是错误的。期望正确的单词 *ERROR 142:invalid base address

Sfr 说明中的基址有错。有效基址为0x80-0xff。如果声明采用base^pos 形式,则基址是8的 整数倍

*ERROR 143:invalid absolute bit position Sbit 说明中位地址必须在0x80-0xff之间 *ERROR 144:base^pos:invalid bit position Sbit 说明中位pos必须在0~7之间 *ERROR 145:undeclared sfr Sfr 未说明

*ERROR 146:invalid sfr

绝对位地址说明(base^pos)包含无效的基地址。这个基地址必须与sfr 名相对应 *ERROR 147:object too large 对象不能超过65536(64k)字节

*ERROR 148:field not permitted in union

联合不能包含位成员,这个限制是由8051结构决定的。 *ERROR 149:function member in struct/union

结构或者联合不能包含函数类型的成员。但是指向函数的指针是允许的 *ERROR 150:bit member in struct/union

结构或者联合不能包含位类型的成员,这个限制是由8051 结构决定的 *ERROR 151:self relative struct/union 结构或者联合不能包含自身

*ERROR 152:bit field type too small for number of bits 位域声明中指定的位数超过所给原型中位的数量 *ERROR 153:named bit-field cannot have 0 width 命名的域宽度为0 错误,只有未命名的位域允许是0宽度 *ERROR 154:pro to field 无指向位域指针的类型

*ERROR 155:char/int required for fields

位域基类型要求char 或int类型,unsigned char 或unsigned int 也有效 *ERROR 156:alien permitted on function only Alien 只能用于函数

*ERROR 157:var_parms on alien function

有变参数的函数不能用alien ,因为PL/M51函数只能用固定数量的参数 *ERROR 158:function contains unnamed parameter

函数定义的参数表中包含无名参数。无名参数只允许用于函数的原型中 *ERROR 159:type follows void

函数原型声明中可含一个空的参数表f(void)。Void后不能再用其他类型定义 *ERROR 160:void invalid

Void类型只能与指针合用或表明函数没有返回值 *ERROR 161:formal parameter ignored

函数内的外部函数引用声明使用了无类型的参数表。例如“ extern(a,b,c);”要求形参表 *ERROR 162:duplicate function-parameter 函数内参数名重复

*ERROR 163:unknown array size

一般的不管是一维数组还是多维数组或外部数组,都需要指定数组的大小,这个大小是由编 译器的初始化时计算,这个错误表明试图为一个未定维的数组使用sizeof运算符,会哦着一 个多维数组的附加元素未定义。 *ERROR 164:ptr to null

这一个错误通常是由前一个错误造成的 *ERROR 165:ptr to bit

指向位的指针不是合法的类型 *ERROR 166:array of function

数组不能包含函数,但可能包含指向函数的指针。 *ERROR 167:array of fields 位域不能安排为数组 *ERROR 168:array of bit 数组没有位类型

*ERROR 169:function returns function

函数不能返回函数,但可以返回一个指向函数的指针 *ERROR 170:function returns array 函数不能返回数组,但可返回指向数组的指针 *ERROR 171:missing enclosing swith

Break/continue 语句只能出现在for,while,do while或switch语句中间。 *ERROR 172:missing enclosing swith Case语句只能用在switch语句中 *ERROR 173:missing return-expression

返回类型不是integer 的函数必须包含一条代表达式的return 语句。由于要与老版本兼容, 编译器对返回整形值的函数不做检查

*ERROR 174:return-expression on void-function

Void 函数不能返回值,因此不能包含带表达式return的语句 *ERROR 175:duplicate case value

每个case 语句必须包含一个常量表达式做其变量,这个值不能在switch 语句的各级中出现 多次

*ERROR 176:more than one default

Switch语句中不能包含多于一个的default语句 *ERROR 177:different struct/union 赋值或参数传递中使用了结构/联合的不同类型 *ERROR 178:struct/union comparison illegal 根据ANSI C,两个结构或联合的比较是不允许的 *ERROR 179:cannot/cast from/to void-type

将void类型转化为其他类型数据或将其他类型转化为void类型都是非法的 *ERROR 180:cannot cast to’function’

转化为function是非法的,使用函数指针指向不同的函数 *ERROR 181:incompatible operand

在所给的运算符中至少有一个操作符类型是无效的 *ERROR 182:point to different object

报告指针使用不一致

*ERROR 183:unmodifiable value

预修改的对象位于CODE 存储区,因而不能修改 *ERROR 184:sizeof :illegal operand Sizeof运算符不能决定函数或位域大小 *ERROR 185:different memory space 对象说明的存储空间与前面的不一致 *ERROR 186:invalid dereference 这条错误信息可能由编译器内部问题产生的 *ERROR 187:not an lvalue 所需参量必须是可变对象的地址 *ERROR 188:unknown object size

无法计算对象的大小,因为缺少数组的维数或因为通过void指针的间接访问 *ERROR 189:‘&’on bit/sfr illegal 地址操作符‘&’不允许用于位对象或sfr *ERROR 190:’&’:not an lvalue 地质部是可变的对象,不能作为左值 *ERROR 191:‘&’on constant 试图为所列类型常数建立指针

*ERROR 192:‘&’on array/function

地址操作符&不允许用于数组或函数,函数和数组本身都代表了地址 *ERROR 193:illegal op-type(s) *ERROR 193:illegal add/sub on ptr *ERROR 193:illegal operation on bit(s) *ERROR 193:bad operand type

当一个表达式使用给定运算符的非法操作类型时就会出现该错误,使用个定运算符的非法操 作类型的无效的表达式,例如bit+bit,ptr+ptr,或ptr*。错误信息包括引起错误的运算符。 下列运算可使用位操作符 赋值(=)

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

位或常数的安位比较(= =,!=) 取反(~)

*ERROR 194:’*’indirection to object of unknown size

间接操作符*不能用于void指针(void*),因为指针所指的对象的大小时未知的