C语言程序设计(第4版)》-CodeBlocks常见编程错误英汉对照-051

C语言程序设计(第4版)》-CodeBlocks常见编程错误英汉对照-051


2024年6月5日发(作者:)

2.1.2.5 Code::Blocks常见编译错误和警告信息的英汉对照

Code::Blocks常见编译错误和警告信息的英汉对照如表2-1所示。

表2-1 Code::Blocks常见常见编译错误和警告信息的英汉对照

常见编译错误的英文提示信息

array size missing in 'xx'

assignment of read-only variable 'xx'

assignment of read-only location '*xx'

assignment from incompatible pointer type

assignment to expression with array type

initialization from incompatible pointer type

中文含义

数组'xx' 缺少大小

对只读的内存空间进行赋值操作

备注

通常是在定义数组的时候没有定义数

组大小造成的

如果指针变量'xx'前面加上了类型限定符

对只读的内存空间进行赋值操作

const,那如果试图修改其指向的内存,那

么将会产生这个错误

不兼容的指针类型赋值

可能是将数组名或常量字符串赋值给

用数组类型给表达式赋值

数组名引起的,字符串赋值应该使用函数

strcpy(),不能直接赋值

不兼容的指针类型初始化

通常是由函数声明与函数定义的参数

conflicting types for 'xxx' 函数'xxx'的函数原型冲突

或返回值类型不匹配而造成的,缺少函数

原型、函数原型在函数调用之后或函数名

拼写错误也可能引起此错误提示

case label not within a switch statement

或break statement not within loop or switch

或 'default' label not within a switch statement

case或break或default没有在switch语

句之内

通常是由括号不匹配造成的

对于有返回值的函数,如果一个分支中有

control reaches end of non-void function

函数存在无返回值的分支

return语句,那么其他分支也要有return

语句,确保所有退出函数调用的分支都有

返回值

character constant too long for its type

invalid initializer

overflow in implicit constant conversion

division by zero

duplicate case value

字符常量太长

无效的初始化器

隐含的常量转换溢出

除数为0

case情况不唯一

通常是变量类型不匹配导致的,例如将

用于字符串的双引号错写成了单引号,将

int指针变量指向char型数组等

switch语句的每个case必须有一个唯

一的常量表达式值,否则导致此类错误发

可能是字符数组的初始化列表中的元

excess elements in char array initializer

expected 'while' before 'xxx'

expected ';' before 'xxx'

expected ':' or '...' before 'xxx'

expected expression before '%' token

expected identifier or '(' before '{' token

字符数组初始化器中存在多余元素

'xxx'前面必须有关键字while

'xxx'的前一行语句末尾缺少分号

变量'xxx'前面缺少一个冒号

‘%’前缺少表达式

'{'前面缺少标识符或'('

素错将单引号写成了双引号,也可能是二

维数组的行列数弄颠倒了

通常是do后面缺少while造成的

通常是前一行代码中case后面漏掉冒

号造成的

类似的的错误提示很多,按照提示检查

缺少的语言成分即可

通常是前一行的函数定义末尾多写分

号造成的

通常是大括号不匹配造成的

expected declaration or statement at end of input

在输入的末尾缺少必要的语句或声明

expected '=', ',', ';', 'asm' or '__attribute__'

before '{' token

expected '=', ',', ';', 'asm' or '__attribute__'

before '{' token

expected '{' at end of input

control reaches end of non-void function old-

style parameter declarations in prototyped

function definition

right-hand operand of comma expression has no

effect

expected ';' before ')' token

expected expression before ')' token

format '%d' expects argument of type 'int *', but

argument 2 has type 'double'

format '%f' expects argument of type 'float *',

but argument 2 has type 'int *'

function returns address of local variable

返回了局部变量的地址

有可能是前面邻近的if分支的语句漏

'else' without a previous 'if'

else之前没有能与之直接配对的if

掉了花括号或者前面的if后面多了一个

分号,从而导致在if和else两个分支之

间夹杂了其他的语句

implicit declaration of function 'xxx'

'long double')

initialization from incompatible pointer type

initialization makes pointer from integer without

a cast

*' using type 'float'

but 'float' was expected

'xxx' is used uninitialized in this function

lvalue required as left operand of assignment

或‘=’: left operand must be l-value

lvalue required as increment operand

missing terminating " character

passing argument 1 of 'xxx' makes pointer from

integer without a cast

note: expected 'int *' but argument is of type

'int'

assignment makes integer from pointer without

a cast

redeclaration of 'xxx' with no linkage

'xxx' redeclared as different kind of symbol

'xxx'被重定义

'xxx'被作为不同的标识符被重定义

通常是由于该标识符在不同位置被重

复定义导致的

通常是函数的形参在函数内又被定义

为局部变量导致的

用未经强转的整型给函数'xxx'的第一个

实参传递值

通常是实参没有加取地址运算符&造

成的

隐式的函数'xxx声明

可能是没有包含函数'xxx'对应的头文件

通常是用不同基类型的变量地址为指

不兼容的指针类型初始化

针初始化引起的警告,例如用一个整型变

量的地址为一个浮点类型的指针初始化

用未经强转的整型为指针变量初始化

指针初始化时,变量的前面忘记加&,

通常会引起这个警告

指针初始化时,变量的前面忘记加&,

通常会引起这个警告

通常是赋值运算符的左侧不是变量而

是常量或表达式造成的

通常是自增运算符的操作数不是变量

而是常量或表达式造成的

通常是书写字符串时丢失双引号造成

通常是scanf格式字符不匹配或者

scanf地址变量列表中的变量未加去抵制

运算符&引起的警告

for语名缺少分号 ;

通常是因for语句中某个表达式后的分

号被误写成逗号导致的

出现这些错误提示,有可能是函数原型

后面忘记写分号造成的

invalid operands to binary % (have 'float' and

二元运算符%出现了非法的操作数(例

如浮点型)

incompatible types when initializing type 'float

用float对float指针类型进行初始化时

引起不兼容的类型错误

float,但实际返回的是int *类型

函数中的变量'xxx'未被初始化就使用了

赋值语句的左操作数必须是左值

incompatible types when returning type 'int *'

不兼容的类型错误,期望返回的类型是

自增运算符的操作数需要左值

缺少终结符"

return type defaults to 'int'

stray '357' in program

subscripted value is neither array nor pointer

nor vector

size of array 'a' is too large

函数的缺省返回值类型为int

通常是函数没有定义返回值类型造成

通常是代码中出现了中文字符(例如

中文的标点符号)造成的

通常是函数调用语句的函数名后面将

圆括号错写为方括号造成的

定义的数组太大,超过了可用内存空

通常是由定义结构体类型时使用了本

结构体类型来定义域名的类型所引起的

有可能是if后面的表达式中的比较相

等关系运算符漏掉了一个=,使其变成了

赋值运算符,而出现此警告

可能函数调用时少写了实参

可能函数调用时多写了实参

通常是由标识符的字母拼写错误使得

字符’357’不存在

下标值既不是数组,也不是指针,也

不是向量

数组太大

结构太大

suggest parentheses around assignment used as

建议在赋值表达式两边加圆括号,使其

truth value

too few arguments to function 'xxx'

too many arguments to function 'xxx'

以真值方式使用

函数'xxx'的实参数太少

函数'xxx'的实参数太多

'xxx' undeclared (first use in this function)

标识符'xxx'没有定义(在函数中首次使已定义的标识符和实际使用的标识符不

用) 一致导致的,如数字1和小写字母l混

淆、字母大小写混淆等

unused variable 'xx'

或variable xx' set but not used

undefined reference to 'xxx'

ld returned 1 exit status

变量'xx'定义了但其值未被使用 说明变量'xx'是多余的,可以删去

通常是由函数名拼写错误、缺少函数定

义或者未导入函数所需的库文件造成的

未定义的函数引用


发布者:admin,转转请注明出处:http://www.yc00.com/web/1717584390a2740598.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信