C++常見錯誤中英文對照表

對於剛學編程,剛接觸C++的新手來說,編譯運行報錯是最頭疼的一件事,爆出一堆英文,英語差一點的又不知道什麼意思,所以也不知道如何去改,在此,我給大家傳一份常見錯誤中英文對照表及簡單解釋,希望可以幫到大家:
fatal error C1003: error count exceeds number; stopping compilation
中文對照:(編譯錯誤)錯誤太多,停止編譯
分析:修改之前的錯誤,再次編譯
fatal error C1004: unexpected end of file found
中文對照:(編譯錯誤)文件未結束
分析:一個函數或者一個結構定義缺少“}”、或者在一個函數調用或表達式中括號沒有配對出現、或者註釋符“/*…*/”不完整等
fatal error C1083: Cannot open include file: 'xxx': No such file or directory
中文對照:(編譯錯誤)無法打開頭文件xxx:沒有這個文件或路徑
分析:頭文件不存在、或者頭文件拼寫錯誤、或者文件爲只讀
fatal error C1903: unable to recover from previous error(s); stopping compilation
中文對照:(編譯錯誤)無法從之前的錯誤中恢復,停止編譯
分析:引起錯誤的原因很多,建議先修改之前的錯誤
error C2001: newline in constant
中文對照:(編譯錯誤)常量中創建新行
分析:字符串常量多行書寫
error C2006: #include expected a filename, found 'identifier'
中文對照:(編譯錯誤)#include命令中需要文件名
分析:一般是頭文件未用一對雙引號或尖括號括起來,例如“#include stdio.h”
error C2007: #define syntax
中文對照:(編譯錯誤)#define語法錯誤
分析:例如“#define”後缺少宏名,例如“#define”
error C2008: 'xxx' : unexpected in macro definition
中文對照:(編譯錯誤)宏定義時出現了意外的xxx
分析:宏定義時宏名與替換串之間應有空格,例如“#define TRUE"1"”
error C2009: reuse of macro formal 'identifier'
中文對照:(編譯錯誤)帶參宏的形式參數重複使用
分析:宏定義如有參數不能重名,例如“#define s(a,a) (a*a)”中參數a重複
error C2010: 'character' : unexpected in macro formal parameter list
中文對照:(編譯錯誤)帶參宏的形式參數表中出現未知字符
分析:例如“#define s(r|) r*r”中參數多了一個字符‘|’
error C2014: preprocessor command must start as first nonwhite space
中文對照:(編譯錯誤)預處理命令前面只允許空格
分析:每一條預處理命令都應獨佔一行,不應出現其他非空格字符
error C2015: too many characters in constant
中文對照:(編譯錯誤)常量中包含多個字符
分析:字符型常量的單引號中只能有一個字符,或是以“\”開始的一個轉義字符,例如“char error = 'error';”
error C2017: illegal escape sequence
中文對照:(編譯錯誤)轉義字符非法
分析:一般是轉義字符位於 ' ' 或 " " 之外,例如“char error = ' '\n;”
error C2018: unknown character '0xhh'
中文對照:(編譯錯誤)未知的字符0xhh
分析:一般是輸入了中文標點符號,例如“char error = 'E';”中“;”爲中文標點符號
error C2019: expected preprocessor directive, found 'character'
中文對照:(編譯錯誤)期待預處理命令,但有無效字符
分析:一般是預處理命令的#號後誤輸入其他無效字符,例如“#!define TRUE 1”
error C2021: expected exponent value, not 'character'
中文對照:(編譯錯誤)期待指數值,不能是字符
分析:一般是浮點數的指數表示形式有誤,例如123.456E
error C2039: 'identifier1' : is not a member of 'identifier2'
中文對照:(編譯錯誤)標識符1不是標識符2的成員
分析:程序錯誤地調用或引用結構體、共用體、類的成員
error C2041: illegal digit 'x' for base 'n'
中文對照:(編譯錯誤)對於n進制來說數字x非法
分析:一般是八進制或十六進制數表示錯誤,例如“int i = 081;”語句中數字‘8’不是八進制的基數
error C2048: more than one default
中文對照:(編譯錯誤)default語句多於一個
分析:switch語句中只能有一個default,刪去多餘的default
error C2050: switch expression not integral
中文對照:(編譯錯誤)switch表達式不是整型的
分析:switch表達式必須是整型(或字符型),例如“switch ("a")”中表達式爲字符串,這是非法的
error C2051: case expression not constant
中文對照:(編譯錯誤)case表達式不是常量
分析:case表達式應爲常量表達式,例如“case "a"”中“"a"”爲字符串,這是非法的
error C2052: 'type' : illegal type for case expression
中文對照:(編譯錯誤)case表達式類型非法
分析:case表達式必須是一個整型常量(包括字符型)
error C2057: expected constant expression
中文對照:(編譯錯誤)期待常量表達式
分析:一般是定義數組時數組長度爲變量,例如“int n=10; int a[n];”中n爲變量,這是非法的
error C2058: constant expression is not integral
中文對照:(編譯錯誤)常量表達式不是整數
分析:一般是定義數組時數組長度不是整型常量
error C2059: syntax error : 'xxx'
中文對照:(編譯錯誤)‘xxx’語法錯誤
分析:引起錯誤的原因很多,可能多加或少加了符號xxx
error C2064: term does not evaluate to a function
中文對照:(編譯錯誤)無法識別函數語言
分析:1、函數參數有誤,表達式可能不正確,例如“sqrt(s(s-a)(s-b)(s-c));”中表達式不正確
      2、變量與函數重名或該標識符不是函數,例如“int i,j; j=i();”中i不是函數 
error C2065: 'xxx' : undeclared identifier        
中文對照:(編譯錯誤)未定義的標識符xxx
分析:1、如果xxx爲cout、cin、scanf、printf、sqrt等,則程序中包含頭文件有誤
         2、未定義變量、數組、函數原型等,注意拼寫錯誤或區分大小寫。
error C2078: too many initializers
中文對照:(編譯錯誤)初始值過多
分析:一般是數組初始化時初始值的個數大於數組長度,例如“int b[2]={1,2,3};”
error C2082: redefinition of formal parameter 'xxx'
中文對照:(編譯錯誤)重複定義形式參數xxx
分析:函數首部中的形式參數不能在函數體中再次被定義
error C2084: function 'xxx' already has a body
中文對照:(編譯錯誤)已定義函數xxx
分析:在VC++早期版本中函數不能重名,6.0版本中支持函數的重載,函數名可以相同但參數不一樣
error C2086: 'xxx' : redefinition
中文對照:(編譯錯誤)標識符xxx重定義
分析:變量名、數組名重名
error C2087: '<Unknown>' : missing subscript
中文對照:(編譯錯誤)下標未知
分析:一般是定義二維數組時未指定第二維的長度,例如“int a[3][];”
error C2100: illegal indirection
中文對照:(編譯錯誤)非法的間接訪問運算符“*”
分析:對非指針變量使用“*”運算
error C2105: 'operator' needs l-value
中文對照:(編譯錯誤)操作符需要左值
分析:例如“(a+b)++;”語句,“++”運算符無效
error C2106: 'operator': left operand must be l-value
中文對照:(編譯錯誤)操作符的左操作數必須是左值
分析:例如“a+b=1;”語句,“=”運算符左值必須爲變量,不能是表達式
error C2110: cannot add two pointers
中文對照:(編譯錯誤)兩個指針量不能相加
分析:例如“int *pa,*pb,*a; a = pa + pb;”中兩個指針變量不能進行“+”運算
error C2117: 'xxx' : array bounds overflow
中文對照:(編譯錯誤)數組xxx邊界溢出
分析:一般是字符數組初始化時字符串長度大於字符數組長度,例如“char str[4] = "abcd";”
error C2118: negative subscript or subscript is too large
中文對照:(編譯錯誤)下標爲負或下標太大
分析:一般是定義數組或引用數組元素時下標不正確
發佈了21 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章