C++常見(jiàn)錯(cuò)誤中英文對(duì)照表
fatal error C1003: error count exceeds number; stopping compilation
中文對(duì)照:(編譯錯(cuò)誤)錯(cuò)誤太多,停止編譯
分析:修改之前的錯(cuò)誤,再次編譯
fatal error C1004: unexpected end of file found
中文對(duì)照:(編譯錯(cuò)誤)文件未結(jié)束
分析:一個(gè)函數(shù)或者一個(gè)結(jié)構(gòu)定義缺少“}”、或者在一個(gè)函數(shù)調(diào)用或表達(dá)式中括號(hào)沒(méi)有配對(duì)出現(xiàn)、或者注釋符“/*…*/”不完整等
fatal error C1083: Cannot open include file: 'xxx': No such file or directory
中文對(duì)照:(編譯錯(cuò)誤)無(wú)法打開(kāi)頭文件xxx:沒(méi)有這個(gè)文件或路徑
分析:頭文件不存在、或者頭文件拼寫(xiě)錯(cuò)誤、或者文件為只讀
fatal error C1903: unable to recover from previous error(s); stopping compilation
中文對(duì)照:(編譯錯(cuò)誤)無(wú)法從之前的錯(cuò)誤中恢復(fù),停止編譯
分析:引起錯(cuò)誤的原因很多,建議先修改之前的錯(cuò)誤
error C2001: newline in constant
中文對(duì)照:(編譯錯(cuò)誤)常量中創(chuàng)建新行
分析:字符串常量多行書(shū)寫(xiě)
error C2006: #include expected a filename, found 'identifier'
中文對(duì)照:(編譯錯(cuò)誤)#include命令中需要文件名
分析:一般是頭文件未用一對(duì)雙引號(hào)或尖括號(hào)括起來(lái),例如“#include stdio.h”
error C2007: #define syntax
中文對(duì)照:(編譯錯(cuò)誤)#define語(yǔ)法錯(cuò)誤
分析:例如“#define”后缺少宏名,例如“#define”
error C2008: 'xxx' : unexpected in macro definition
中文對(duì)照:(編譯錯(cuò)誤)宏定義時(shí)出現(xiàn)了意外的xxx
分析:宏定義時(shí)宏名與替換串之間應(yīng)有空格,例如“#define TRUE"1"”
error C2009: reuse of macro formal 'identifier'
中文對(duì)照:(編譯錯(cuò)誤)帶參宏的形式參數(shù)重復(fù)使用
分析:宏定義如有參數(shù)不能重名,例如“#define s(a,a) (a*a)”中參數(shù)a重復(fù)
error C2010: 'character' : unexpected in macro formal parameter list
中文對(duì)照:(編譯錯(cuò)誤)帶參宏的形式參數(shù)表中出現(xiàn)未知字符
分析:例如“#define s(r|) r*r”中參數(shù)多了一個(gè)字符‘|'
error C2014: preprocessor command must start as first nonwhite space
中文對(duì)照:(編譯錯(cuò)誤)預(yù)處理命令前面只允許空格
分析:每一條預(yù)處理命令都應(yīng)獨(dú)占一行,不應(yīng)出現(xiàn)其他非空格字符
error C2015: too many characters in constant
中文對(duì)照:(編譯錯(cuò)誤)常量中包含多個(gè)字符
分析:字符型常量的單引號(hào)中只能有一個(gè)字符,或是以“\”開(kāi)始的一個(gè)轉(zhuǎn)義字符,例如“char error = 'error';”
error C2017: illegal escape sequence
中文對(duì)照:(編譯錯(cuò)誤)轉(zhuǎn)義字符非法
分析:一般是轉(zhuǎn)義字符位于 ' ' 或 " " 之外,例如“char error = ' '\n;”
error C2018: unknown character '0xhh'
中文對(duì)照:(編譯錯(cuò)誤)未知的字符0xhh
分析:一般是輸入了中文標(biāo)點(diǎn)符號(hào),例如“char error = 'E';”中“;”為中文標(biāo)點(diǎn)符號(hào)
error C2019: expected preprocessor directive, found 'character'
中文對(duì)照:(編譯錯(cuò)誤)期待預(yù)處理命令,但有無(wú)效字符
分析:一般是預(yù)處理命令的#號(hào)后誤輸入其他無(wú)效字符,例如“#!define TRUE 1”
error C2021: expected exponent value, not 'character'
中文對(duì)照:(編譯錯(cuò)誤)期待指數(shù)值,不能是字符
分析:一般是浮點(diǎn)數(shù)的指數(shù)表示形式有誤,例如123.456E
error C2039: 'identifier1' : is not a member of 'identifier2'
中文對(duì)照:(編譯錯(cuò)誤)標(biāo)識(shí)符1不是標(biāo)識(shí)符2的成員
分析:程序錯(cuò)誤地調(diào)用或引用結(jié)構(gòu)體、共用體、類(lèi)的成員
error C2041: illegal digit 'x' for base 'n'
中文對(duì)照:(編譯錯(cuò)誤)對(duì)于n進(jìn)制來(lái)說(shuō)數(shù)字x非法
分析:一般是八進(jìn)制或十六進(jìn)制數(shù)表示錯(cuò)誤,例如“int i = 081;”語(yǔ)句中數(shù)字‘8'不是八進(jìn)制的基數(shù)
error C2048: more than one default
中文對(duì)照:(編譯錯(cuò)誤)default語(yǔ)句多于一個(gè)
分析:switch語(yǔ)句中只能有一個(gè)default,刪去多余的default
error C2050: switch expression not integral
中文對(duì)照:(編譯錯(cuò)誤)switch表達(dá)式不是整型的
分析:switch表達(dá)式必須是整型(或字符型),例如“switch ("a")”中表達(dá)式為字符串,這是非法的
error C2051: case expression not constant
中文對(duì)照:(編譯錯(cuò)誤)case表達(dá)式不是常量
分析:case表達(dá)式應(yīng)為常量表達(dá)式,例如“case "a"”中“"a"”為字符串,這是非法的
error C2052: 'type' : illegal type for case expression
中文對(duì)照:(編譯錯(cuò)誤)case表達(dá)式類(lèi)型非法
分析:case表達(dá)式必須是一個(gè)整型常量(包括字符型)
error C2057: expected constant expression
中文對(duì)照:(編譯錯(cuò)誤)期待常量表達(dá)式
分析:一般是定義數(shù)組時(shí)數(shù)組長(zhǎng)度為變量,例如“int n=10; int a[n];”中n為變量,這是非法的
error C2058: constant expression is not integral
中文對(duì)照:(編譯錯(cuò)誤)常量表達(dá)式不是整數(shù)
分析:一般是定義數(shù)組時(shí)數(shù)組長(zhǎng)度不是整型常量
error C2059: syntax error : 'xxx'
中文對(duì)照:(編譯錯(cuò)誤)‘xxx'語(yǔ)法錯(cuò)誤
分析:引起錯(cuò)誤的原因很多,可能多加或少加了符號(hào)xxx
error C2064: term does not evaluate to a function
中文對(duì)照:(編譯錯(cuò)誤)無(wú)法識(shí)別函數(shù)語(yǔ)言
分析:1、函數(shù)參數(shù)有誤,表達(dá)式可能不正確,例如“sqrt(s(s-a)(s-b)(s-c));”中表達(dá)式不正確
2、變量與函數(shù)重名或該標(biāo)識(shí)符不是函數(shù),例如“int i,j; j=i();”中i不是函數(shù)
error C2065: 'xxx' : undeclared identifier
中文對(duì)照:(編譯錯(cuò)誤)未定義的標(biāo)識(shí)符xxx
分析:1、如果xxx為cout、cin、scanf、printf、sqrt等,則程序中包含頭文件有誤
2、未定義變量、數(shù)組、函數(shù)原型等,注意拼寫(xiě)錯(cuò)誤或區(qū)分大小寫(xiě)。
error C2078: too many initializers
中文對(duì)照:(編譯錯(cuò)誤)初始值過(guò)多
分析:一般是數(shù)組初始化時(shí)初始值的個(gè)數(shù)大于數(shù)組長(zhǎng)度,例如“int b[2]={1,2,3};”
error C2082: redefinition of formal parameter 'xxx'
中文對(duì)照:(編譯錯(cuò)誤)重復(fù)定義形式參數(shù)xxx
分析:函數(shù)首部中的形式參數(shù)不能在函數(shù)體中再次被定義
error C2084: function 'xxx' already has a body
中文對(duì)照:(編譯錯(cuò)誤)已定義函數(shù)xxx
分析:在VC++早期版本中函數(shù)不能重名,6.0版本中支持函數(shù)的重載,函數(shù)名可以相同但參數(shù)不一樣
error C2086: 'xxx' : redefinition
中文對(duì)照:(編譯錯(cuò)誤)標(biāo)識(shí)符xxx重定義
分析:變量名、數(shù)組名重名
error C2087: '<Unknown>' : missing subscript
中文對(duì)照:(編譯錯(cuò)誤)下標(biāo)未知
分析:一般是定義二維數(shù)組時(shí)未指定第二維的長(zhǎng)度,例如“int a[3][];”
error C2100: illegal indirection
中文對(duì)照:(編譯錯(cuò)誤)非法的間接訪問(wèn)運(yùn)算符“*”
分析:對(duì)非指針變量使用“*”運(yùn)算
error C2105: 'operator' needs l-value
中文對(duì)照:(編譯錯(cuò)誤)操作符需要左值
分析:例如“(a+b)++;”語(yǔ)句,“++”運(yùn)算符無(wú)效
error C2106: 'operator': left operand must be l-value
中文對(duì)照:(編譯錯(cuò)誤)操作符的左操作數(shù)必須是左值
分析:例如“a+b=1;”語(yǔ)句,“=”運(yùn)算符左值必須為變量,不能是表達(dá)式
error C2110: cannot add two pointers
中文對(duì)照:(編譯錯(cuò)誤)兩個(gè)指針量不能相加
分析:例如“int *pa,*pb,*a; a = pa + pb;”中兩個(gè)指針變量不能進(jìn)行“+”運(yùn)算
error C2117: 'xxx' : array bounds overflow
中文對(duì)照:(編譯錯(cuò)誤)數(shù)組xxx邊界溢出
分析:一般是字符數(shù)組初始化時(shí)字符串長(zhǎng)度大于字符數(shù)組長(zhǎng)度,例如“char str[4] = "abcd";”
error C2118: negative subscript or subscript is too large
中文對(duì)照:(編譯錯(cuò)誤)下標(biāo)為負(fù)或下標(biāo)太大
分析:一般是定義數(shù)組或引用數(shù)組元素時(shí)下標(biāo)不正確
error C2124: divide or mod by zero
中文對(duì)照:(編譯錯(cuò)誤)被零除或?qū)?求余
分析:例如“int i = 1 / 0;”除數(shù)為0
error C2133: 'xxx' : unknown size
中文對(duì)照:(編譯錯(cuò)誤)數(shù)組xxx長(zhǎng)度未知
分析:一般是定義數(shù)組時(shí)未初始化也未指定數(shù)組長(zhǎng)度,例如“int a[];”
error C2137: empty character constant。
中文對(duì)照:(編譯錯(cuò)誤)字符型常量為空
分析:一對(duì)單引號(hào)“''”中不能沒(méi)有任何字符
error C2143: syntax error : missing 'token1' before 'token2'
error C2146: syntax error : missing 'token1' before identifier 'identifier'
中文對(duì)照:(編譯錯(cuò)誤)在標(biāo)識(shí)符或語(yǔ)言符號(hào)2前漏寫(xiě)語(yǔ)言符號(hào)1
分析:可能缺少“{”、“)”或“;”等語(yǔ)言符號(hào)
error C2144: syntax error : missing ')' before type 'xxx'
中文對(duì)照:(編譯錯(cuò)誤)在xxx類(lèi)型前缺少‘)'
分析:一般是函數(shù)調(diào)用時(shí)定義了實(shí)參的類(lèi)型
error C2181: illegal else without matching if
中文對(duì)照:(編譯錯(cuò)誤)非法的沒(méi)有與if相匹配的else
分析:可能多加了“;”或復(fù)合語(yǔ)句沒(méi)有使用“{}”
error C2196: case value '0' already used
中文對(duì)照:(編譯錯(cuò)誤)case值0已使用
分析:case后常量表達(dá)式的值不能重復(fù)出現(xiàn)
error C2296: '%' : illegal, left operand has type 'float'
error C2297: '%' : illegal, right operand has type 'float'
中文對(duì)照:(編譯錯(cuò)誤)%運(yùn)算的左(右)操作數(shù)類(lèi)型為float,這是非法的
分析:求余運(yùn)算的對(duì)象必須均為int類(lèi)型,應(yīng)正確定義變量類(lèi)型或使用強(qiáng)制類(lèi)型轉(zhuǎn)換
error C2371: 'xxx' : redefinition; different basic types
中文對(duì)照:(編譯錯(cuò)誤)標(biāo)識(shí)符xxx重定義;基類(lèi)型不同
分析:定義變量、數(shù)組等時(shí)重名
error C2440: '=' : cannot convert from 'char [2]' to 'char'
中文對(duì)照:(編譯錯(cuò)誤)賦值運(yùn)算,無(wú)法從字符數(shù)組轉(zhuǎn)換為字符
分析:不能用字符串或字符數(shù)組對(duì)字符型數(shù)據(jù)賦值,更一般的情況,類(lèi)型無(wú)法轉(zhuǎn)換
error C2447: missing function header (old-style formal list?)
error C2448: '<Unknown>' : function-style initializer appears to be a function definition
中文對(duì)照:(編譯錯(cuò)誤)缺少函數(shù)標(biāo)題(是否是老式的形式表?)
分析:函數(shù)定義不正確,函數(shù)首部的“( )”后多了分號(hào)或者采用了老式的C語(yǔ)言的形參表
error C2450: switch expression of type 'xxx' is illegal
中文對(duì)照:(編譯錯(cuò)誤)switch表達(dá)式為非法的xxx類(lèi)型
分析:switch表達(dá)式類(lèi)型應(yīng)為int或char
error C2466: cannot allocate an array of constant size 0
中文對(duì)照:(編譯錯(cuò)誤)不能分配長(zhǎng)度為0的數(shù)組
分析:一般是定義數(shù)組時(shí)數(shù)組長(zhǎng)度為0
error C2601: 'xxx' : local function definitions are illegal
中文對(duì)照:(編譯錯(cuò)誤)函數(shù)xxx定義非法
分析:一般是在一個(gè)函數(shù)的函數(shù)體中定義另一個(gè)函數(shù)
error C2632: 'type1' followed by 'type2' is illegal
中文對(duì)照:(編譯錯(cuò)誤)類(lèi)型1后緊接著類(lèi)型2,這是非法的
分析:例如“int float i;”語(yǔ)句
error C2660: 'xxx' : function does not take n parameters
中文對(duì)照:(編譯錯(cuò)誤)函數(shù)xxx不能帶n個(gè)參數(shù)
分析:調(diào)用函數(shù)時(shí)實(shí)參個(gè)數(shù)不對(duì),例如“sin(x,y);”
error C2664: 'xxx' : cannot convert parameter n from 'type1' to 'type2'
中文對(duì)照:(編譯錯(cuò)誤)函數(shù)xxx不能將第n個(gè)參數(shù)從類(lèi)型1轉(zhuǎn)換為類(lèi)型2
分析:一般是函數(shù)調(diào)用時(shí)實(shí)參與形參類(lèi)型不一致
error C2676: binary '<<' : 'class istream_withassign' does not define this operator or a conversion to a type acceptable to the predefined operator
error C2676: binary '>>' : 'class ostream_withassign' does not define this operator or a conversion to a type acceptable to the predefined operator
分析:“>>”、“<<”運(yùn)算符使用錯(cuò)誤,例如“cin<<x; cout>>y;”
error C4716: 'xxx' : must return a value
中文對(duì)照:(編譯錯(cuò)誤)函數(shù)xxx必須返回一個(gè)值
分析:僅當(dāng)函數(shù)類(lèi)型為void時(shí),才能使用沒(méi)有返回值的返回命令。
fatal error LNK1104: cannot open file "Debug/Cpp1.exe"
中文對(duì)照:(鏈接錯(cuò)誤)無(wú)法打開(kāi)文件Debug/Cpp1.exe
分析:重新編譯鏈接
fatal error LNK1168: cannot open Debug/Cpp1.exe for writing
中文對(duì)照:(鏈接錯(cuò)誤)不能打開(kāi)Debug/Cpp1.exe文件,以改寫(xiě)內(nèi)容。
分析:一般是Cpp1.exe還在運(yùn)行,未關(guān)閉
fatal error LNK1169: one or more multiply defined symbols found
中文對(duì)照:(鏈接錯(cuò)誤)出現(xiàn)一個(gè)或更多的多重定義符號(hào)。
分析:一般與error LNK2005一同出現(xiàn)
error LNK2001: unresolved external symbol _main
中文對(duì)照:(鏈接錯(cuò)誤)未處理的外部標(biāo)識(shí)main
分析:一般是main拼寫(xiě)錯(cuò)誤,例如“void mian()”
error LNK2005: _main already defined in Cpp1.obj
中文對(duì)照:(鏈接錯(cuò)誤)main函數(shù)已經(jīng)在Cpp1.obj文件中定義
分析:未關(guān)閉上一程序的工作空間,導(dǎo)致出現(xiàn)多個(gè)main函數(shù)
warning C4003: not enough actual parameters for macro 'xxx'
中文對(duì)照:(編譯警告)宏xxx沒(méi)有足夠的實(shí)參
分析:一般是帶參宏展開(kāi)時(shí)未傳入?yún)?shù)
warning C4067: unexpected tokens following preprocessor directive - expected a newline
中文對(duì)照:(編譯警告)預(yù)處理命令后出現(xiàn)意外的符號(hào) - 期待新行
分析:“#include<iostream.h>;”命令后的“;”為多余的字符
warning C4091: '' : ignored on left of 'type' when no variable is declared
中文對(duì)照:(編譯警告)當(dāng)沒(méi)有聲明變量時(shí)忽略類(lèi)型說(shuō)明
分析:語(yǔ)句“int ;”未定義任何變量,不影響程序執(zhí)行
warning C4101: 'xxx' : unreferenced local variable
中文對(duì)照:(編譯警告)變量xxx定義了但未使用
分析:可去掉該變量的定義,不影響程序執(zhí)行
warning C4244: '=' : conversion from 'type1' to 'type2', possible loss of data
中文對(duì)照:(編譯警告)賦值運(yùn)算,從數(shù)據(jù)類(lèi)型1轉(zhuǎn)換為數(shù)據(jù)類(lèi)型2,可能丟失數(shù)據(jù)
分析:需正確定義變量類(lèi)型,數(shù)據(jù)類(lèi)型1為float或double、數(shù)據(jù)類(lèi)型2為int時(shí),結(jié)果有可能不正確,數(shù)據(jù)類(lèi)型1為double、數(shù)據(jù)類(lèi)型2為float時(shí),不影響程序結(jié)果,可忽略該警告
warning C4305: 'initializing' : truncation from 'const double' to 'float'
中文對(duì)照:(編譯警告)初始化,截取雙精度常量為float類(lèi)型
分析:出現(xiàn)在對(duì)float類(lèi)型變量賦值時(shí),一般不影響最終結(jié)果
warning C4390: ';' : empty controlled statement found; is this the intent?
中文對(duì)照:(編譯警告)‘;'控制語(yǔ)句為空語(yǔ)句,是程序的意圖嗎?
分析:if語(yǔ)句的分支或循環(huán)控制語(yǔ)句的循環(huán)體為空語(yǔ)句,一般是多加了“;”
warning C4508: 'xxx' : function should return a value; 'void' return type assumed
中文對(duì)照:(編譯警告)函數(shù)xxx應(yīng)有返回值,假定返回類(lèi)型為void
分析:一般是未定義main函數(shù)的類(lèi)型為void,不影響程序執(zhí)行
warning C4552: 'operator' : operator has no effect; expected operator with side-effect
中文對(duì)照:(編譯警告)運(yùn)算符無(wú)效果;期待副作用的操作符
分析:例如“i+j;”語(yǔ)句,“+”運(yùn)算無(wú)意義
warning C4553: '==' : operator has no effect; did you intend '='?
中文對(duì)照:(編譯警告)“==”運(yùn)算符無(wú)效;是否為“=”?
分析:例如 “i==j;” 語(yǔ)句,“==”運(yùn)算無(wú)意義
warning C4700: local variable 'xxx' used without having been initialized
中文對(duì)照:(編譯警告)變量xxx在使用前未初始化
分析:變量未賦值,結(jié)果有可能不正確,如果變量通過(guò)scanf函數(shù)賦值,則有可能漏寫(xiě)“&”運(yùn)算符,或變量通過(guò)cin賦值,語(yǔ)句有誤
warning C4715: 'xxx' : not all control paths return a value
中文對(duì)照:(編譯警告)函數(shù)xxx不是所有的控制路徑都有返回值
分析:一般是在函數(shù)的if語(yǔ)句中包含return語(yǔ)句,當(dāng)if語(yǔ)句的條件不成立時(shí)沒(méi)有返回值
warning C4723: potential divide by 0
中文對(duì)照:(編譯警告)有可能被0除
分析:表達(dá)式值為0時(shí)不能作為除數(shù)
warning C4804: '<' : unsafe use of type 'bool' in operation
中文對(duì)照:(編譯警告)‘<':不安全的布爾類(lèi)型的使用
分析:例如關(guān)系表達(dá)式“0<=x<10”有可能引起邏輯錯(cuò)誤
相關(guān)文章
Qt實(shí)現(xiàn)小功能之圓形進(jìn)度條的方法詳解
在Qt自帶的控件中,只有垂直進(jìn)度條、水平進(jìn)度條兩種。在平時(shí)做頁(yè)面開(kāi)發(fā)時(shí),有些時(shí)候會(huì)用到圓形進(jìn)度條,比如說(shuō):下載某個(gè)文件的下載進(jìn)度。本文就來(lái)實(shí)現(xiàn)一個(gè)圓形進(jìn)度條,需要的可以參考一下2022-10-10C語(yǔ)言實(shí)現(xiàn)天氣信息管理系統(tǒng)
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)天氣信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06c++網(wǎng)絡(luò)編程下Linux的epoll技術(shù)和Windows下的IOCP模型
c++ 網(wǎng)絡(luò)編程LINUX-epoll/windows-IOCP下socket opoll函數(shù)用法 優(yōu)于select方法的epoll 以及windows下IOCP 解決多進(jìn)程服務(wù)端創(chuàng)建進(jìn)程資源浪費(fèi)問(wèn)題,感興趣的小伙伴一起來(lái)學(xué)習(xí)吧2021-08-08C語(yǔ)言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼)
這篇文章主要介紹了C語(yǔ)言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-042022最新使用VSCode編譯運(yùn)行C++的過(guò)程及會(huì)遇到的兩個(gè)問(wèn)題
這篇文章主要介紹了2022最新使用VSCode編譯運(yùn)行C++的過(guò)程及會(huì)遇到的兩個(gè)問(wèn)題,這里需要注意把剛才解壓的地址加上\bin添加進(jìn)去,比如我的:D:\aaakkk\cpp\mingw64\bin,然后點(diǎn)確定,注意一定要確保它被保存了,感興趣的朋友跟隨小編一起看看吧2022-09-09OpenCV利用高斯模糊實(shí)現(xiàn)簡(jiǎn)單的磨皮美顏效果
這篇文章主要介紹了通過(guò)OpenCV中的高斯模糊以及雙邊模糊來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的磨皮美顏效果,文中的講解很詳細(xì),感興趣的同學(xué)可以學(xué)習(xí)一下2021-12-12數(shù)據(jù)結(jié)構(gòu)之伸展樹(shù)詳解
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之伸展樹(shù)詳解,本文對(duì)伸展樹(shù)(Splay Tree)的單旋轉(zhuǎn)操作、一字型旋轉(zhuǎn)、之字形旋轉(zhuǎn)區(qū)間操作等理論知識(shí)做了講解,并給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-08-08