本文目錄一覽:
C語言中常見錯誤
1.書寫標識符時,忽略了大小寫字母的區別。
main()
{
int a=5;
printf(“%d”,A);
}
編譯程序把a和A認為是兩個不同的變數名,而顯示出錯信息。C認為大寫字母和小寫字母是兩個不同的字元。習慣上,符號常量名用大寫,變數名用小寫表示,以增加可讀性。
2.忽略了變數的類型,進行了不合法的運算。
main()
{
float a,b;
printf(“%d”,a%b);
}
%是求余運算,得到a/b的整餘數。整型變數a和b可以進行求余運算,而實型變數則不允許進行「求余」運算。
3.將字元常量與字元串常量混淆。
char c;
c=”a”;
在這裡就混淆了字元常量與字元串常量,字元常量是由一對單引號括起來的單個字元,字元串常量是一對雙引號括起來的字元序列。C規定以「\」作字元串結束標誌,它是由系統自動加上的,所以字元串「a」實際上包含兩個字元:『a’和『\’,而把它賦給一個字元變數是不行的。
4.忽略了「=」與「==」的區別。
在許多高級語言中,用「=」符號作為關係運算符「等於」。如在BASIC程序中可以寫
if (a=3) then …
但C語言中,「=」是賦值運算符,「==」是關係運算符。如:
if (a==3) a=b;
前者是進行比較,a是否和3相等,後者表示如果a和3相等,把b值賦給a。由於習慣問題,初學者往往會犯這樣的錯誤。
5.忘記加分號。
分號是C語句中不可缺少的一部分,語句末尾必須有分號。
a=1
b=2
編譯時,編譯程序在「a=1」後面沒發現分號,就把下一行「b=2」也作為上一行語句的一部分,這就會出現語法錯誤。改錯時,有時在被指出有錯的一行中未發現錯誤,就需要看一下上一行是否漏掉了分號。
{ z=x+y;
t=z/100;
printf(“%f”,t);
}
對於複合語句來說,最後一個語句中最後的分號不能忽略不寫(這是和PASCAL不同的)。
6.多加分號。
對於一個複合語句,如:
{ z=x+y;
t=z/100;
printf(“%f”,t);
};
複合語句的花括弧後不應再加分號,否則將會畫蛇添足。
又如:
if (a%3==0);
I++;
本是如果3整除a,則I加1。但由於if (a%3==0)後多加了分號,則if語句到此結束,程序將執行I++語句,不論3是否整除a,I都將自動加1。
再如:
for (I=0;I5;I++);
{scanf(“%d”,x);
printf(“%d”,x);}
本意是先後輸入5個數,每輸入一個數後再將它輸出。由於for()後多加了一個分號,使循環體變為空語句,此時只能輸入一個數並輸出它。
7.輸入變數時忘記加地址運算符「」。
int a,b;
scanf(“%d%d”,a,b);
這是不合法的。Scanf函數的作用是:按照a、b在內存的地址將a、b的值存進去。「a」指a在內存中的地址。
8.輸入數據的方式與要求不符。①scanf(“%d%d”,a,b);
輸入時,不能用逗號作兩個數據間的分隔符,如下面輸入不合法:
3,4
輸入數據時,在兩個數據之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。
②scanf(“%d,%d”,a,b);
C規定:如果在「格式控制」字元串中除了格式說明以外還有其它字元,則在輸入數據時應輸入與這些字元相同的字元。下面輸入是合法的:
3,4
此時不用逗號而用空格或其它字元是不對的。
3 4 3:4
又如:
scanf(“a=%d,b=%d”,a,b);
輸入應如以下形式:
a=3,b=4
9.輸入字元的格式與要求不一致。
在用「%c」格式輸入字元時,「空格字元」和「轉義字元」都作為有效字元輸入。
scanf(“%c%c%c”,c1,c2,c3);
如輸入a b c
字元「a」送給c1,字元「 」送給c2,字元「b」送給c3,因為%c只要求讀入一個字元,後面不需要用空格作為兩個字元的間隔。
10.輸入輸出的數據類型與所用格式說明符不一致。
例如,a已定義為整型,b定義為實型
a=3;b=4.5;
printf(“%f%d\n”,a,b);
編譯時不給出出錯信息,但運行結果將與原意不符。這種錯誤尤其需要注意。
《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: 『』 : 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
中文對照:(編譯錯誤)下標為負或下標太大
分析:一般是定義數組或引用數組元素時下標不正確
error C2124: divide or mod by zero
中文對照:(編譯錯誤)被零除或對0求余
分析:例如「int i = 1 / 0;」除數為0
error C2133: 『xxx』 : unknown size
中文對照:(編譯錯誤)數組xxx長度未知
分析:一般是定義數組時未初始化也未指定數組長度,例如「int a[];」
error C2137: empty character constant。
中文對照:(編譯錯誤)字元型常量為空
分析:一對單引號「」」中不能沒有任何字元
error C2143: syntax error : missing 『token1』 before 『token2』
error C2146: syntax error : missing 『token1』 before identifier 『identifier』
中文對照:(編譯錯誤)在標識符或語言符號2前漏寫語言符號1
分析:可能缺少「{」、「)」或「;」等語言符號
error C2144: syntax error : missing 『)』 before type 『xxx』
中文對照:(編譯錯誤)在xxx類型前缺少『)』
分析:一般是函數調用時定義了實參的類型
error C2181: illegal else without matching if
中文對照:(編譯錯誤)非法的沒有與if相匹配的else
分析:可能多加了「;」或複合語句沒有使用「{}」
error C2196: case value 『0』 already used
中文對照:(編譯錯誤)case值0已使用
分析:case後常量表達式的值不能重複出現
error C2296: 『%』 : illegal, left operand has type 『float』
error C2297: 『%』 : illegal, right operand has type 『float』
中文對照:(編譯錯誤)%運算的左(右)操作數類型為float,這是非法的
分析:求余運算的對象必須均為int類型,應正確定義變數類型或使用強制類型轉換
error C2371: 『xxx』 : redefinition; different basic types
中文對照:(編譯錯誤)標識符xxx重定義;基類型不同
分析:定義變數、數組等時重名
error C2440: 『=』 : cannot convert from 『char [2]』 to 『char』
中文對照:(編譯錯誤)賦值運算,無法從字元數組轉換為字元
分析:不能用字元串或字元數組對字元型數據賦值,更一般的情況,類型無法轉換
error C2447: missing function header (old-style formal list?)
error C2448: 『』 : function-style initializer appears to be a function definition
中文對照:(編譯錯誤)缺少函數標題(是否是老式的形式表?)
分析:函數定義不正確,函數首部的「( )」後多了分號或者採用了老式的C語言的形參表
error C2450: switch expression of type 『xxx』 is illegal
中文對照:(編譯錯誤)switch表達式為非法的xxx類型
分析:switch表達式類型應為int或char
error C2466: cannot allocate an array of constant size 0
中文對照:(編譯錯誤)不能分配長度為0的數組
分析:一般是定義數組時數組長度為0
error C2601: 『xxx』 : local function definitions are illegal
中文對照:(編譯錯誤)函數xxx定義非法
分析:一般是在一個函數的函數體中定義另一個函數
error C2632: 『type1』 followed by 『type2』 is illegal
中文對照:(編譯錯誤)類型1後緊接著類型2,這是非法的
分析:例如「int float i;」語句
error C2660: 『xxx』 : function does not take n parameters
中文對照:(編譯錯誤)函數xxx不能帶n個參數
分析:調用函數時實參個數不對,例如「sin(x,y);」
error C2664: 『xxx』 : cannot convert parameter n from 『type1』 to 『type2』
中文對照:(編譯錯誤)函數xxx不能將第n個參數從類型1轉換為類型2
分析:一般是函數調用時實參與形參類型不一致
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
分析:「」、「」運算符使用錯誤,例如「cin x; couty;」
error C4716: 『xxx』 : must return a value
中文對照:(編譯錯誤)函數xxx必須返回一個值
分析:僅當函數類型為void時,才能使用沒有返回值的返回命令。
fatal error LNK1104: cannot open file 「Debug/Cpp1.exe」
中文對照:(鏈接錯誤)無法打開文件Debug/Cpp1.exe
分析:重新編譯鏈接
fatal error LNK1168: cannot open Debug/Cpp1.exe for writing
中文對照:(鏈接錯誤)不能打開Debug/Cpp1.exe文件,以改寫內容。
分析:一般是Cpp1.exe還在運行,未關閉
fatal error LNK1169: one or more multiply defined symbols found
中文對照:(鏈接錯誤)出現一個或更多的多重定義符號。
分析:一般與error LNK2005一同出現
error LNK2001: unresolved external symbol _main
中文對照:(鏈接錯誤)未處理的外部標識main
分析:一般是main拼寫錯誤,例如「void mian()」
error LNK2005: _main already defined in Cpp1.obj
中文對照:(鏈接錯誤)main函數已經在Cpp1.obj文件中定義
分析:未關閉上一程序的工作空間,導致出現多個main函數
warning C4003: not enough actual parameters for macro 『xxx』
中文對照:(編譯警告)宏xxx沒有足夠的實參
分析:一般是帶參宏展開時未傳入參數
warning C4067: unexpected tokens following preprocessor directive – expected a newline
中文對照:(編譯警告)預處理命令後出現意外的符號 – 期待新行
分析:「#include iostream.h;」命令後的「;」為多餘的字元
warning C4091: 」 : ignored on left of 『type』 when no variable is declared
中文對照:(編譯警告)當沒有聲明變數時忽略類型說明
分析:語句「int ;」未定義任何變數,不影響程序執行
warning C4101: 『xxx』 : unreferenced local variable
中文對照:(編譯警告)變數xxx定義了但未使用
分析:可去掉該變數的定義,不影響程序執行
warning C4244: 『=』 : conversion from 『type1』 to 『type2』, possible loss of data
中文對照:(編譯警告)賦值運算,從數據類型1轉換為數據類型2,可能丟失數據
分析:需正確定義變數類型,數據類型1為float或double、數據類型2為int時,結果有可能不正確,數據類型1為double、數據類型2為float時,不影響程序結果,可忽略該警告
warning C4305: 『initializing』 : truncation from 『const double』 to 『float』
中文對照:(編譯警告)初始化,截取雙精度常量為float類型
分析:出現在對float類型變數賦值時,一般不影響最終結果
warning C4390: 『;』 : empty controlled statement found; is this the intent?
中文對照:(編譯警告)『;』控制語句為空語句,是程序的意圖嗎?
分析:if語句的分支或循環控制語句的循環體為空語句,一般是多加了「;」
warning C4508: 『xxx』 : function should return a value; 『void』 return type assumed
中文對照:(編譯警告)函數xxx應有返回值,假定返回類型為void
分析:一般是未定義main函數的類型為void,不影響程序執行
warning C4552: 『operator』 : operator has no effect; expected operator with side-effect
中文對照:(編譯警告)運算符無效果;期待副作用的操作符
分析:例如「i+j;」語句,「+」運算無意義
warning C4553: 『==』 : operator has no effect; did you intend 『=』?
中文對照:(編譯警告)「==」運算符無效;是否為「=」?
分析:例如 「i==j;」 語句,「==」運算無意義
warning C4700: local variable 『xxx』 used without having been initialized
中文對照:(編譯警告)變數xxx在使用前未初始化
分析:變數未賦值,結果有可能不正確,如果變數通過scanf函數賦值,則有可能漏寫「」運算符,或變數通過cin賦值,語句有誤
warning C4715: 『xxx』 : not all control paths return a value
中文對照:(編譯警告)函數xxx不是所有的控制路徑都有返回值
分析:一般是在函數的if語句中包含return語句,當if語句的條件不成立時沒有返回值
warning C4723: potential divide by 0
中文對照:(編譯警告)有可能被0除
分析:表達式值為0時不能作為除數
warning C4804: 『』 : unsafe use of type 『bool』 in operation
中文對照:(編譯警告)『』:不安全的布爾類型的使用
分析:例如關係表達式「0=x10」有可能引起邏輯錯誤。
c語言編程中出現的糾錯英文語句是啥意思?
編譯錯誤信息
說明:Turbo C 的源程序錯誤分為三種類型:致命錯誤、一般錯誤和警告。其中,致命錯誤通常是內部編譯出錯;一般錯誤指程序的語法錯誤、磁碟或內存存取錯誤或命令行錯誤等;警告則只是指出一些得懷疑的情況,它並不防止編譯的進行。
下面按字母順序A~Z分別列出致命錯誤及一般錯誤信息,英漢對照及處理方法:
(一)、致命錯誤英漢對照及處理方法:
A-B致命錯誤
Bad call of in-line function (內部函數非法調用)
分析與處理:在使用一個宏定義的內部函數時,沒能正確調用。一個內部函數以兩個下劃線(__)開始和結束。
Irreducable expression tree (不可約表達式樹)
分析與處理:這種錯誤指的是文件行中的表達式太複雜,使得代碼生成程序無法為它生成代碼。這種表達式必須避免使用。
Register allocation failure (存儲器分配失敗)
分析與處理:這種錯誤指的是文件行中的表達式太複雜,代碼生成程序無法為它生成代碼。此時應簡化這種繁雜的表達式或乾脆避免使用它。
(二)、一般錯誤信息英漢照及處理方法
#operator not followed by maco argument name(#運算符後沒跟宏變元名)
分析與處理:在宏定義中,#用於標識一宏變串。「#」號後必須跟一個宏變元名。
‘xxxxxx’ not anargument (‘xxxxxx’不是函數參數)
分析與處理:在源程序中將該標識符定義為一個函數參數,但此標識符沒有在函數中出現。
Ambiguous symbol ‘xxxxxx’ (二義性符號’xxxxxx’)
分析與處理:兩個或多個結構的某一域名相同,但具有的偏移、類型不同。在變數或表達式中引用該域而未帶結構名時,會產生二義性,此時需修改某個域名或在引用時加上結構名。
Argument # missing name (參數#名丟失)
分析與處理:參數名已脫離用於定義函數的函數原型。如果函數以原型定義,該函數必須包含所有的參數名。
Argument list syntax error (參數表出現語法錯誤)
分析與處理:函數調用的參數間必須以逗號隔開,並以一個右括弧結束。若源文件中含有一個其後不是逗號也不是右括弧的參數,則出錯。
Array bounds missing (數組的界限符”]”丟失)
分析與處理:在源文件中定義了一個數組,但此數組沒有以下右方括弧結束。
Array size too large (數組太大)
分析與處理:定義的數組太大,超過了可用內存空間。
Assembler statement too long (彙編語句太長)
分析與處理:內部彙編語句最長不能超過480位元組。
Bad configuration file (配置文件不正確)
分析與處理:TURBOC.CFG配置文件中包含的不是合適命令行選擇項的非註解文字。配置文件命令選擇項必須以一個短橫線開始。
Bad file name format in include directive(包含指令中文件名格式不正確)
分析與處理:包含文件名必須用引號(“filename.h”)或尖括弧(filename)括起來,否則將產生本類錯誤。如果使用了宏,則產生的擴展文本也不正確,因為無引號沒辦法識別。
Bad ifdef directive syntax (ifdef指令語法錯誤)
分析與處理:#ifdef必須以單個標識符(只此一個)作為該指令的體。
Bad ifndef directive syntax (ifndef指令語法錯誤)
分析與處理:#ifndef 必須以單個標識符(只此一個)作為該指令的體。
Bad undef directive syntax (undef指令語法錯誤)
分析與處理:#undef指令必須以單個標識符(只此一個)作為該指令的體。
Bad file size syntax (位欄位長語法錯誤)
分析與處理:一個位欄位長必須是1—16位的常量表達式。
Call of non-functin (調用未定義函數)
分析與處理:正被調用的函數無定義,通常是由於不正確的函數聲明或函數名拼錯而造成。
Cannot modify a const object (不能修改一個長量對象)
分析與處理:對定義為常量的對象進行不合法操作(如常量賦值)引起本錯誤。
Case outside of switch (Case 出現在switch外)
分析與處理:編譯程序發現Case語句出現在switch語句之外,這類故障通常是由於括弧不匹配造成的。
Case statement missing (Case語句漏掉)
分析與處理:Case語必須包含一個以冒號結束的常量表達式,如果漏了冒號或在冒號前多了其它符號,則會出現此類錯誤。
Character constant too long (字元常量太長)
分析與處理:字元常量的長度通常只能是一個或兩個字元長,超過此長度則會出現這種錯誤。
Compound statement missing (漏掉複合語句)
分析與處理:編譯程序掃描到源文件未時,未發現結束符號 (大括弧),此類故障通常是由於大括弧不匹配所致。
Conflicting type modifiers (類型修飾符衝突)
分析與處理:對同一指針,只能指定一種變址修飾符(如near 或far);而對於同一函數,也只能給出一種語言修飾符(如Cdecl、pascal或interrupt)。
Constant expression required (需要常量表達式)
分析與處理:數組的大小必須是常量,本錯誤通常是由於#define常量的拼寫錯誤引起。
Could not find file ‘xxxxxx.xxx’ (找不到’xxxxxx.xx’文件)
分析與處理:編譯程序找不到命令行上給出的文件。
Declaration missing (漏掉了說明)
分析與處理:當源文件中包含了一個struct或 union域聲明,而後面漏掉了分號,則會出現此類錯誤。
Declaration needs type or storage class(說明必須給出類型或存儲類)
分析與處理:正確的變數說明必須指出變數類型,否則會出現此類錯誤。
Declaration syntax error (說明出現語法錯誤)
分析與處理:在源文件中,若某個說明丟失了某些符號或輸入多餘的符號,則會出現此類錯誤。
Default outside of switch (Default語句在switch語句外出現)
分析與處理:這類錯誤通常是由於括弧不匹配引起的。
Define directive needs an identifier (Define指令必須有一個標識符)
分析與處理:#define 後面的第一個非空格符必須是一個標識符,若該位置出現其它字元,則會引起此類錯誤。
Division by zero (除數為零)
分析與處理:當源文件的常量表達式出現除數為零的情況,則會造成此類錯誤。
Do statement must have while (do語句中必須有While關鍵字)
分析與處理:若源文件中包含了一個無While關鍵字的 do語句,則出現本錯誤。
DO while statement missing ( (Do while語句中漏掉了符號 “(“)
分析與處理:在do語句中,若 while關鍵字後無左括弧,則出現本錯誤。
Do while statement missing;(Do while語句中掉了分號)
分析與處理:在DO語句的條件表達式中,若右括弧後面無分號則出現此類錯誤。
Duplicate Case (Case情況不唯一)
分析與處理:Switch語句的每個case必須有一個唯一的常量表達式值。否則導致此類錯誤發生。
Enum syntax error (Enum語法錯誤)
分析與處理:若enum說明的標識符表格式不對,將會引起此類錯誤發生。
Enumeration constant syntax error (枚舉常量語法錯誤)
分析與處理:若賦給enum類型變數的表達式值不為常量,則會導致此類錯誤發生。
Error Directive : xxxx (Error指令:xxxx)
分析與處理:源文件處理#error指令時,顯示該指令指出的信息。
Error Writing output file (寫輸出文件錯誤)
分析與處理:這類錯誤通常是由於磁碟空間已滿,無法進行寫入操作而造成。
Expression syntax error (表達式語法錯誤)
分析與處理:本錯誤通常是由於出現兩個連續的操作符,括弧不匹配或缺少括弧、前一語句漏掉了分號引起的。
Extra parameter in call (調用時出現多餘參數)
分析與處理:本錯誤是由於調用函數時,其實際參數個數多於函數定義中的參數個數所致。
Extra parameter in call to xxxxxx(調用xxxxxxxx函數時出現了多餘參數)
File name too long (文件名太長)
分析與處理:#include指令給出的文件名太長,致使編譯程序無法處理,則會出現此類錯誤。通常DOS下的文件名長度不能超過 64個字元。
For statement missing ) (For語名缺少”)”)
分析與處理:在 for語句中,如果控制表達式後缺少右括弧,則會出現此類錯誤。
For statement missing( (For語句缺少”(“)
For statement missing; (For 語句缺少”;”)
分析與處理:在 for語句中,當某個表達式後缺少分號,則會出現此類錯誤。
Function call missing) (函數調用缺少”)”)
分析與處理:如果函數調用的參數表漏掉了右手括弧或括弧不匹配,則會出現此類錯誤。
Function definition out ofplace (函數定義位置錯誤)
Function doesn’t take a variable number of argument(函數不接受可變的參數個數)
Goto statement missing label (Goto語句缺少標號)
If statement missing( (If語句缺少”(“)
If statement missing) (If語句缺少”)”)
lllegal initalization (非法初始化)
lllegal octal digit (非法八進位數)
分析與處理:此類錯誤通常是由於八進位常數中包含了非八進位數字所致。
lllegal pointer subtraction (非法指針相減)
lllegal structure operation (非法結構操作)
lllegal use of floating point (浮點運算非法)
lllegal use of pointer (指針使用非法)
Improper use of a typedef symbol (typedef符號使用不當)
Incompatible storage class (不相容的存儲類型)
Incompatible type conversion (不相容的類型轉換)
Incorrect commadn line argument:xxxxxx (不正確的命令行參數:xxxxxxx)
Incorrect commadn file argument:xxxxxx (不正確的配置文件參數:xxxxxxx)
Incorrect number format (不正確的數據格式)
Incorrect use of default (deflult不正確使用)
Initializer syntax error (初始化語法錯誤)
Invaild indrection (無效的間接運算)
Invalid macro argument separator (無效的宏參數分隔符)
Invalid pointer addition (無效的指針相加)
Invalid use of dot (點使用錯)
Macro argument syntax error (宏參數語法錯誤)
Macro expansion too long (宏擴展太長)
Mismatch number of parameters in definition(定義中參數個數不匹配)
Misplaced break (break位置錯誤)
Misplaced continue (位置錯)
Misplaced decimal point (十進位小數點位置錯)
Misplaced else (else 位置錯)
Misplaced else driective (clse指令位置錯)
Misplaced endif directive (endif指令位置錯)
Must be addressable (必須是可編址的)
Must take address of memory location (必須是內存一地址)
No file name ending (無文件終止符)
No file names given (未給出文件名)
Non-protable pointer assignment (對不可移植的指針賦值)
Non-protable pointer comparison (不可移植的指針比較)
Non-protable return type conversion (不可移植的返回類型轉換)
Not an allowed type (不允許的類型)
Out of memory (內存不夠)
Pointer required on left side of (操作符左邊須是一指針)
Redeclaration of ‘xxxxxx’ (‘xxxxxx’重定義)
Size of structure or array not known (結構或數組大小不定)
Statement missing; (語句缺少「;」)
Structure or union syntax error (結構或聯合語法錯誤)
Structure size too large (結構太大)
Subscription missing ] (下標缺少『]』)
Switch statement missing ( (switch 語句缺少”(“)
Switch statement missing ) (switch 語句缺少”)”)
Too few parameters in call (函數調用參數太少)
Too few parameter in call to’xxxxxx'(調用’xxxxxx’時參數太少)
Too many cases (Cases太多)
Too many decimal points (十進位小數點太多)
Too many default cases (defaut太多)
Too many exponents (階碼太多)
Too many initializers (初始化太多)
Too many storage classes in declaration (說明中存儲類太多)
Too many types in decleration (說明中類型太多)
Too much auto memory in function (函數中自動存儲太多)
Too much global define in file (文件中定義的全局數據太多)
Two consecutive dots (兩個連續點)
Type mismatch in parameter # (參數”#”類型不匹配)
Type mismatch in parameter # in call to ‘XXXXXXX’ (調用’XXXXXXX’時參數#類型不匹配)
Type missmatch in parameter ‘XXXXXXX’ (參數’XXXXXXX’類型不匹配)
Type mismatch in parameter ‘YYYYYYYY’ in call to ‘YYYYYYYY'(調用’YYYYYYY’時參數’XXXXXXXX’數型不匹配)
Type mismatch in redeclaration of ‘XXX’ (重定義類型不匹配)
Unable to creat output file ‘XXXXXXXX.XXX’ (不能創建輸出文件’XXXXXXXX.XXX’)
Unable to create turboc.lnk (不能創建turboc.lnk )
Unable to execute command ‘xxxxxxxx'(不能執行’xxxxxxxx’命令)
Unable to open include file ‘xxxxxxx.xxx’ (不能打開包含文件’xxxxxxxx.xxx’)
Unable to open inputfile ‘xxxxxxx.xxx’ (不能打開輸入文件’xxxxxxxx.xxx’)
Undefined label ‘xxxxxxx’ (標號’xxxxxxx’未定義)
Undefined structure ‘xxxxxxxxx’ (結構’xxxxxxxxxx’未定義)
Undefined symbol ‘xxxxxxx’ (符號’xxxxxxxx’未定義)
Unexpected end of file in comment started on line #(源文件在某個注釋中意外結束)
Unexpected end of file in conditional stated on line # (源文件在#行開始的條件語句中意外結束)
Unknown preprocessor directive ‘xxx’ (不認識的預處理指令:’xxx’)Untermimated character constant (未終結的字元常量)
Unterminated string (未終結的串)
Unterminated string or character constant(未終結的串或字元常量)
User break (用戶中斷)
Value required (賦值請求)
While statement missing ( (While語句漏掉 ‘(‘)
While statement missing ) (While語句漏掉 ‘)’)
Wrong number of arguments in of ‘xxxxxxxx’ (調用’xxxxxxxx’時參數個數錯誤)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/271566.html