c語言4101錯誤,c語言4013錯誤

本文目錄一覽:

請熟悉C語言的朋友們解釋一下出現下面警告的原因,不甚感激……

warning C4101:定義的變數沒有被使用;

warning C4013:「exit」未定義,建設返回 int類型;沒有找到函數原形;

warning C4024:調用函數「fopen」時,第二個參數不對;

warning C4047: ‘const char *’ 與 ‘const int ‘類型不一致,函數調用形參與實參類型不匹配。

c語言錯誤問題

void main()是不存在的,

現在標準的寫法有兩種:

int main();

或int main(void);

以前用main();

int i;num;word;

num=0;word=0;

應該是int i,num,word,num=0,word=0;

中間是逗號,不是分號,程序中,分號表示語句的結束,編譯器一看到分號就不看這句了,直接下一句。所以這些變數相當與沒有定義,沒有定義編譯器就報錯了,說不知道這些符號是什麼東東。

string被寫成了sting和sring幫

《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語言程序編錯了求指正~~ warning C4101: ‘c’ : unreferenced local variable 還有輸出不能運行

warning C4101: ‘c’ : unreferenced local variable

這個錯誤並不會導致無法編譯。只是一個警告: 你定義的C變數冗餘,沒有用到。

c語言設計中warning C4101和warning C4101錯誤都是什麼意思 怎麼解決???

意思是說變數fp並沒有被使用,所以編譯時,有的編譯器會給出警告!!

你把代碼貼出來,具體看看?

求助一個C語言問題 為什麼在VC中老是提示我 warning C4101: ‘c’ : unreferenced local variable

警告的意思為:警告C4101:’e’:未引用的局部變數

原因是局部變數的錯誤使用。你的 f,c,k都是在main()函數裡面定義的,然而,你在使用這些變數時是在temp()函數裡面,在某個函數裡面定義的變數只能在此函數中使用,所以你會產生錯誤。解決辦法為,將這些變數定義為全局變數。

問題成功解決。

拓展資料

在計算機科學中,局部變數是擁有局部作用域的變數。這樣的變數只能由聲明它的函數或塊中訪問。在僅有兩層可見性的程序設計語言中,局部變數對應全局變數;另一方面,許多類ALGOL語言允許任意多層的嵌套函數,各自擁有私有變數、函數、常量和類型。

大多數程序設計語言中,局部變數是直接存儲在調用堆棧上的自動變數。即遞歸函數調用自己時,局部變數的每一份實例都在不同的地址空間中。於是在當前作用域對變數的聲明、寫入、讀取都不會在其被聲明的函數外產生副作用。

原創文章,作者:XDZI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/137306.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XDZI的頭像XDZI
上一篇 2024-10-04 00:17
下一篇 2024-10-04 00:17

相關推薦

發表回復

登錄後才能評論