四时宝库

程序员的知识宝库

小白最常见的78个编译错误及分析(二)

所谓编译错误就是我们平常所说的bug。对于初级程序员来说,bug是常伴身边的,不夸张地说,写代码和改bug耗费的时间是一样的。而看完此系列文章后,便能读懂这些英文编译错误,有针对性地修改程序,大大缩短改bug的时间,从而省出更多时间学习新知识。

27 error C2065: 'xxx' : undeclaredidentifier

中文对照:(编译错误)未定义的标识符xxx

分析:1、如果xxx为cout、cin、scanf、printf、sqrt等,则程序中包含头文件有误 2、未定义变量、数组、函数原型等,注意拼写错误或区分大小写。

28 error C2078: too many initializers

中文对照:(编译错误)初始值过多

分析:一般是数组初始化时初始值的个数大于数组长度,例如“int b[2]={1,2,3};”

29 error C2082: redefinition offormal parameter 'xxx'

中文对照:(编译错误)重复定义形式参数xxx

分析:函数首部中的形式参数不能在函数体中再次被定义

30 error C2084: function 'xxx' alreadyhas a body

中文对照:(编译错误)已定义函数xxx

分析:在VC++早期版本中函数不能重名,6.0版本中支持函数的重载,函数名可以相同但参数不一样

31 error C2086: 'xxx' : redefinition

中文对照:(编译错误)标识符xxx重定义

分析:变量名、数组名重名

32 error C2087: '<Unknown>': missing subscript

中文对照:(编译错误)下标未知

分析:一般是定义二维数组时未指定第二维的长度,例如“int a[3][];”

33 error C2100: illegal indirection

中文对照:(编译错误)非法的间接访问运算符“*”

分析:对非指针变量使用“*”运算

34 error C2105: 'operator' needsl-value

中文对照:(编译错误)操作符需要左值

分析:例如“(a+b)++;”语句,“++”运算符无效

35 error C2106: 'operator': leftoperand must be l-value

中文对照:(编译错误)操作符的左操作数必须是左值 分析:

例如“a+b=1;”语句,“=”运算符左值必须为变量,不能是表达式

36 error C2110: cannot add two pointers

中文对照:(编译错误)两个指针量不能相加

分析:例如“int *pa,*pb,*a; a = pa + pb;”中两个指针变量不能进行“+”运算

37 error C2117: 'xxx' : array boundsoverflow

中文对照:(编译错误)数组xxx边界溢出

分析:一般是字符数组初始化时字符串长度大于字符数组长度,例如“char str[4] = "abcd";”

38 error C2118: negative subscriptor subscript is too large

中文对照:(编译错误)下标为负或下标太大

分析:一般是定义数组或引用数组元素时下标不正确 error C2124: divide or mod by zero 中文对照:(编译错误)被零除或对0求余分析:例如“int i = 1 / 0;”除数为0

39 error C2133: 'xxx' : unknownsize

中文对照:(编译错误)数组xxx长度未知

分析:一般是定义数组时未初始化也未指定数组长度,例如“int a[];”

喜欢的话关注收藏评论转发一波 比心么么哒!加入我们C语言C++学习交流 壹 496926338群内有大量的项目开发和新手教学视频千人大群等着你来加入。

C语言C++学习交流群496926338

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接