常见C++编译出错提示参考

C++编译出错的时候VC有错误提示,双击错误提示语句可以定位到代码行。很多情况下即使知道某行代码有错误也不知如何纠正;但如果知道错误提示的意思,就可以对症下药,找到问题的切入点。下面是笔者从网上收集的一些错误提示语句的中英文对照,仅供参考:

Ambiguous operators need parentheses——不明确的运算需要用括号括起

Ambiguous symbol ”xxx” ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——不明确的符号

Argument list syntax error ——­­­­­­­­­­­­­­­­参数表语法错误

Array bounds missing­­­­­­­­­­­­­­­­­­——丢失数组界限符

Array size toolarge­­­­­­­­­­­­­­­­­——数组尺寸太大

Bad character in paramenters ­­­­­­­­­­­­­­­­­­——参数中有不适当的字符

Bad file name format in include directive­­­­­­­­­­­­­­­­­­­­——包含命令中文件名格式不正确

Bad ifdef directive synatax—— ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­编译预处理 ifdef有语法错

Bad undef directive syntax ­­­­­­­­­­­­­­­­­­­­­­­­­­­——编译预处理 undef有语法错

Bit field too large­­­­­­­­­­­­­­­­——位字段太长

Call of non­function­­­­­­­­­­­­­­­­­——调用未定义的函数

Call to function with no prototype­­­­­­­­­­­­­­­——调用函数时没有函数的说明

Cannot modify a const object ­­­­­­­­­­­­­­­——不允许修改常量对象

Case outside of switch——­­­­­­­­­­­­­­­­漏掉了 case 语句

Case syntax error ­­­­­­­­­­­­­­­­­­ Case ——语法错误

Code has no effect ­­­­­­­­­­­­­­­­­——代码不可述不可能执行到

Compound statement missing{ ­­­­­­­­­­­­­­­­­­­­——分程序漏掉”{”

Conflicting type modifiers ­­­­­­­­­­­­­­­­­­——不明确的类型说明符

Constant expression required——要求常量表达式

Constant out of range in comparison­­­­­­­­­­­­­­­­­——在比较中常量超出范围

Conversion may lose significant digits ——­­­­­­­­­­­­­­­­­转换时会丢失意义的数字

Conversion of near pointer not allowed­­­­­­­­­­­­­­­­­——不允许转换近指针

Could not find file ”xxx”—— ­­­­­­­­­­­­­­­­­­­­­­­找不到XXX 文件

Declaration missing ; ­­­­­­­­­­­­­­­­——说明缺少”;”

Declaration syntax error ­­­­­­­­­­­­­­­­­——说明中出现语法错误

Default outside of switch­­­­­­­­­­­­­­­­­­ Default ——出现在switch语句之外

Define directive needs an identifier—— ­­­­­­­­­­­­­­­­­­定义编译预处理需要标识符

Division by zero­­­­­­­­­­­­­­­­­­——用零作除数

Do statement must have while­­­­­­­­­­­­­­­­­­Do­while ——语句中缺少 while部分

Enum syntax error—— ­­­­­­­­­­­­­­­­­­­­­枚举类型语法错误

Enumeration constant syntax error ­­­­­­­­­­­­­­­­­——枚举常数语法错误

Error directive :xxx ——­­­­­­­­­­­­­­­­­­­­­­­­错误的编译预处理命令

Error writing output file­­­­­­­­­­­­­­­­­­­­­写输出文件错误

Expression syntax error ­­­­­­­­­­­­­­­­­­­­­­­——表达式语法错误

Extra parameter in call ­­­­­­­­­­­­­­­­­­­­­­­­——调用时出现多余错误

File name toolong­­­­­­­­­­­­­­­­——文件名太长

Function call missing­­­­­­­­­­­­­­­­­——函数调用缺少右括号

Fuction definition out of place——­­­­­­­­­­­­­­­­­­函数定义位置错误

Fuction should return a value­­­­­­­­­­­­­­­­­­——函数必需返回一个值

Goto statement missing label ­­­­­­­­­­­­­­­­­­ Goto——语句没有标号

Hexadecimal or octal constant too large——­­­­­­­­­­­­­­­­­­16进制或 8 进制常数太大

Illegal character ”x” ­­­­­­­­­­­­­­­­­­——非法字符 x

Illegal initialization­­­­­­­­­­­­­­­­­­——非法的初始化

Illegal octal digit ­­­­­­­­­­­­­­­­­­——非法的 8 进制数字

Illegal pointer subtraction­­­­­­­­­­­­­­­­­­——非法的指针相减

Illegal structure operation­­­­­­­­­­­­­­­­­­——非法的结构体操作

Illegal use of floating point ­­­­­­­­­­­­­­­­­——非法的浮点运算

Illegal use of pointer—— ­­­­­­­­­­­­­­­­­­­­指针使用非法

Improper use of a typedefsymbol ­­­­­­­­­­­­­­­­——类型定义符号使用不恰当

In­line assembly not allowed——­­­­­­­­­­­­­­­­­不允许使用行间汇编

Incompatible storage class—— ­­­­­­­­­­­­­­­­­存储类别不相容

Incompatible type conversion­­­­­­­­­­­­­­­­­­­­——不相容的类型转换

Incorrect number format ——­­­­­­­­­­­­­­­­­­­­­­­错误的数据格式

Incorrect use of default ­­­­­­­­­­­­­­­­­­­­­Default—— 使用不当

Invalid indirection­­­­­­­­­­­­­­­­­­­­­——无效的间接运算

Invalid pointer addition­­­­­­­­­­­­­­­­­­——指针相加无效

Irreducible expression tree­­­­­­­­­­­­­­­­­­­­­­­——无法执行的表达式运算

Lvalue required——­­­­­­­­­­­­­­­­­­­­­­­­­­­需要逻辑值 0 或非 0 值

Macro argument syntax error ­­­­­­­­­­­­­­­­­­­——宏参数语法错误

Macro expansion too long­­­­­­­­­­­­­­­­­­­­­­——宏的扩展以后太长

Mismatched number of parameters in definition­­­­­­­­­­­­­­­­­­­­­——定义中参数个数不匹配

Misplaced break­­­­­­­­­­­­­­­­­­­­­——此处不应出现break语句

Misplaced continue­­­­­­­­­­­­­­­­­­­­­­­­——此处不应出现 continue语句

Misplaced decimal point ­­­­­­­­­­­­­­­­­­­­——此处不应出现小数点

Misplaced elif directive­­­­­­­­­­­­­­­­­­­­——不应编译预处理 elif

Misplaced else——­­­­­­­­­­­­­­­­­­­­­­此处不应出现 else

Misplaced else directive­­­­­­­­­­­­­­­­­­——此处不应出现编译预处理 else

Misplaced endif directive­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——此处不应出现编译预处理 endif

Must be addressable­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——必须是可以编址的

Must take address of memory location­­­­­­­­­­­­­­­­——­­­­­­­­­­­­­­­­­­必须存储定位的地址

No declaration for function ”xxx” ­­­­­­­­­­­­­­­­——­­­­­­­­­­­­­­­­­­­没有函数 xxx 的说明

No stack­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——缺少堆栈

No type information­­­­­­­­­­­­­­­­——­­­­­­­­­­­­­­­­­­没有类型信息

Non­portable pointer assignment ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——不可移动的指针(地址常数)赋值

Non­portable pointer comparison­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——不可移动的指针(地址常数)比较

Non­portable pointer conversion­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——不可移动的指针 (地址常数)转换

Not a valid expression format type­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——不合法的表达式格式

Not an allowed type­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——不允许使用的类型

Numeric constant too large­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——数值常太大

Out of memory­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——内存不够用

Parameter ”xxx” is never used­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——能数 xxx 没有用到

Pointer required on left side of­> ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——符号­>的左边必须是指针

Possible use of ”xxx” before definition­­­­­­­­­­­­­­­­——­­­­­­­­­­­­­­­­­­­在定义之前就使用了 xxx (警告)

Possibly incorrect assignment ­­­­­­­­­­­­­­­­——­­­­­­­­­­­­­­­­赋值可能不正确

Redeclaration of ”xxx” ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——重复定义了 xxx

Redefinition of ”xxx” is not identical ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­—— xxx的两次定义不一致

Register allocation failure­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——寄存器定址失败

Repeat count needs an lvalue­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——重复计数需要逻辑值

Size of structure or array not known­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——结构体或数给大小不确定

Statement missing ; ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——语句后缺少”;”

Structure or union syntax error ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——结构体或联合体语法错误

Structure size too large­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——结构体尺寸太大

Sub scripting missing ] ­­­­­­­­­­­­­­­­——­­­­­­­­­­­­­­­­下标缺少”]”

Superfluous & with function or array­­­­­­­­­­­­­­­­——­­­­­­­­­­­­­­­­­­函数或数组中有多余的”&”

Suspicious pointer conversion­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——可疑的指针转换

Symbol limit exceeded­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——符号超限

Too few parameters in call ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——函数调用时的实参少于函数的参数不

Too many default cases ­­­­­­­­­­­­­­­­­­­Default­­­­­­­­­­­­­­­­—— 太多(switch语句中一个)

Too many error or warning messages ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——错误或警告信息太多

Too many type in declaration­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——说明中类型太多

Too much auto memory in function­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——函数用到的局部存储太多

Too much global data defined in file­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——文件中全局数据太多

Two consecutive dots­­­­­­­­­­­­­­­­—— ­­­­­­­­­­­­­­­­­两个连续的句点

Type mismatch in parameter xxx ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——参数xxx类型不匹配

Type mismatch in redeclaration of ”xxx” ­­­­­­­­­­­­­­­­ ­­­­­­­­­­­­­­­­——xxx 重定义的类型不匹配

Unableto create output file ”xxx” ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——无法建立输出文件 xxx

Unable to open include file ”xxx” ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——无法打开被包含的文件 xxx

Unable to open input file ”xxx” ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——无法打开输入文件 xxx

Undefined label ”xxx”­­­­­­­­­­­­­­­­—— ­­­­­­­­­­­­­­­­­­­没有定义的标号 xxx

Undefined structure ”xxx” ­­­­­­­­­­­­­­­­——­­­­­­­­­­­­­­­­­没有定义的结构 xxx

Undefined symbol ”xxx” ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——没有定义的符号xxx

Unexpected end of file in comment started on line xxx ­­­­­­­­­­­­­­­­­­­­­­­­­­——从 xxx 行开始的注解尚未结束文件不能结束

Unexpected end of file in conditional started on line xxx ­­­­­­­­­­­­­­­­­­­­——从 xxx 开始的条件语句尚未结束文件不能结束

Unknown assemble instruction­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——未知的汇编结构

Unknown option­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——未知的操作

Unknown preprocessor directive: ”xxx” ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——不认识的预处理命令 xxx

Unreachable code­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——无路可达的代码

Unterminated string or character constant ­­­­­­­­­­­­­­­­——­­­­­­­­­­­­­­­­­字符串缺少引号

User break­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——用户强行中断了程序

Void functions may not return a value­­­­­­­­­­­­­­­­­Void ­­­­­­­­­­­­­­­­——类型的函数不应有返回值

Wrong number of arguments ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——调用函数的参数数目错

”xxx” not an argument ­­­­­­­­­­­­­­­­­ ­­­­­­­­­­­­­­­­——xxx不是参数

”xxx” not part of structure­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——xxx 不是结构体的一部分

xxx statement missing ( ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­—— xxx 语句缺少左括号

xxx statement missing ) ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­—— xxx 语句缺少右括号

xxx statement missing ;­­­­­­­­­­­­­­­­—— ­­­­­­­­­­­­­­­­­­­­xxx 缺少分号

xxx” declared but never used­­­­­­­­­­­­­­­­——­­­­­­­­­­­­­­­­­­­说明了 xxx但没有使用

xxx” is assigned a value which is never used­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——给 xxx赋了值但未用过

Zero length structure­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­——结构体的长度为零

  5Comments

  1. 草帽luffy   •  

    很实用的错误提示参考啊!
    代码非常多的时候,查阅错误代码,有助于快速定位到错误处进行修改。
    C++,强大的语言,可惜一直没入门,呵呵。

    • Jeriff Cheng   •     Author

      我正在入门 :smile: 很复杂,我表示压力很大

      • 草帽luffy   •  

        其实也还好,无所谓就是变量、函数,以及接口。
        多做一些例子和练习,慢慢地就懂了。
        草帽的弱点在于对很多事情都是五分钟热度,坚持不下去,呵呵。

        • Terry Chen   •  

          我是学了一些C的,但是现在仅仅掌握了语言层面,缺少数据结构和算法的知识,此外还需要学操作系统的API等等,我觉得真是力不从心了,算了,我想以后告别编程了,毕竟不是自己的专业全靠自学学下来太难,这些时间我还是投资在别的更有用的东西上,把别人写的软件研究透就是了。

          • Jeriff Cheng   •     Author

            是啊,我也有同感。爱好和专业毕竟不一样,会使用好的软件就不错了。像善用佳软学习。

Leave a Reply

Your email address will not be published. Required fields are marked *