一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Turbo C出錯(cuò)信息

 元傲一 2006-10-16
Turbo C 編譯出錯(cuò)信息
    Turbo C 編譯程序查出的源程序錯(cuò)誤分為三類:嚴(yán)重錯(cuò)誤、一般錯(cuò)誤和警告。
    1:嚴(yán)重錯(cuò)誤(fatal  error):很少出現(xiàn),它通常是內(nèi)部編譯出錯(cuò)。在發(fā)生嚴(yán)
重錯(cuò)誤時(shí),編譯立即停止,必需采取一些適當(dāng)?shù)拇胧┎⒅匦戮幾g。
    2:一般錯(cuò)誤(error ):指程序的語法錯(cuò)誤以及磁盤、內(nèi)存或命令行錯(cuò)誤等。
編譯程序?qū)⑼瓿涩F(xiàn)階段的編譯,然后停止。編譯程序在每個(gè)階段( 預(yù)處理、語法分
析、優(yōu)化、代碼生成 )將盡可能多地找出源程序中的錯(cuò)誤。
    3:警告(warning ):不阻止編譯的繼續(xù)進(jìn)行。它指出一些值得懷疑的情況,
而這些情況本身又可以合理地作為源程序的一部分。一旦在在源文件中使用了與機(jī)
器有關(guān)的結(jié)構(gòu),編譯程序就會(huì)產(chǎn)生警告信息。
    編譯程序首先輸出這三類出錯(cuò)信息,然后輸出源文件名和發(fā)現(xiàn)出錯(cuò)的行號(hào),最
后輸出信息的內(nèi)容。
    下面按字母順序分別列出了這三類出錯(cuò)信息。對(duì)每一條信息,均指出了可能產(chǎn)
生的原因和糾正方法。
    1:嚴(yán)重錯(cuò)誤 
      Bad call of inline function  內(nèi)部函數(shù)的不合法調(diào)用;在使用一個(gè)宏定
義的內(nèi)部函數(shù)時(shí),沒有正確調(diào)用。一個(gè)內(nèi)部函數(shù)以兩個(gè)下劃線(_ _)開始和結(jié)束。
      Irreducible  expresson tree  不可約表達(dá)式樹;文件中的表達(dá)式使得代
碼生成程序無法為其產(chǎn)生代碼。應(yīng)避免使用這種表達(dá)式。
      Register allocation failure 存儲(chǔ)器分配失??;源文件中表達(dá)式太復(fù)雜,
代碼生成程序無法為它生成代碼。此時(shí)應(yīng)簡化這種繁瑣的表達(dá)式或干脆不使用它。
    2:一般錯(cuò)誤:
      #operator not followed by macro argument name  “#”運(yùn)算符后沒跟宏
變?cè)?;在宏定義中,,#用來標(biāo)識(shí)一宏變?cè)?#8220;#”后必須跟一宏變?cè)?br>      ‘xxx’not an argument  “xxx”不是函數(shù)參數(shù); 在源程序中將該標(biāo)識(shí)符
定義為一個(gè)函數(shù)參數(shù),但此標(biāo)識(shí)符沒有在函數(shù)的參數(shù)表中出現(xiàn)。
      Ambiguous symbol‘xxx’  “xxx”是歧義性符號(hào);兩個(gè)或多個(gè)結(jié)構(gòu)體的某
一域名(結(jié)構(gòu)體變量)相同,但具有的位移、類型不同。在變量或表達(dá)式引用結(jié)構(gòu)
體分量而未帶結(jié)構(gòu)名時(shí),將產(chǎn)生歧義。這時(shí)需要修改某個(gè)域名或在引用時(shí)加上結(jié)構(gòu)
名。
      Argument # missing name  參數(shù)#名丟失; 參數(shù)名已脫離用于定義函數(shù)的
函數(shù)原型。如果函數(shù)以原型定義,則該函數(shù)必須包含所有的參數(shù)名。
      Argument list syntax error  參數(shù)表出現(xiàn)語法錯(cuò)誤;函數(shù)調(diào)用的一組參數(shù)
其間必須以一逗號(hào)隔開,并以一右括號(hào)結(jié)束。若源文件中包含有一個(gè)其后不是逗號(hào)
也不是右括號(hào)的參數(shù),則出現(xiàn)此錯(cuò)。
      Array bound missing  數(shù)組的界限符“]”丟失;在源文件中定義了一個(gè)數(shù)
組,但此數(shù)組沒有以一右方括號(hào)結(jié)束。
      Array size too large  數(shù)組長度過大;定義的數(shù)組太大,可用內(nèi)存不夠。
      Assemble statement too long  匯編語句太長; 直接插入的匯編語句長度
不能超過480字節(jié)。
      Bad configuration file  配置文件不正確;TURBOC.CFG配置文件中包含不
是合適命令行選擇的非注釋文字。配置文件命令選擇項(xiàng)必須以一短橫線(-)開始。
      Bad file name format in include directive   包含命令中文件名格式不
正確;包含文件名必須用引號(hào)(“*.h”)或尖括號(hào)(〈*.h〉)括起來,否則
將產(chǎn)生此類錯(cuò)誤。如果使用了一個(gè)宏,則產(chǎn)生的擴(kuò)展程序文本也是不正確的(因?yàn)?br>沒有加上引號(hào))。
      Bad ifdef(ifndef/undef) directive syntax  ifdef(ifndef/undef)命令
 語法錯(cuò)誤;#ifdef(ifndef/undef)必須以單個(gè)標(biāo)
識(shí)符(僅此一個(gè))作為該命令的體。
      Bad file size syntax  位字段長語法錯(cuò)誤;一個(gè)位字段長必須是1-16位的
常量表達(dá)式。
      Call of non-function  調(diào)用未定義函數(shù);正確調(diào)用的函數(shù)無定義,通常是
由于不正確的函數(shù)聲明或函數(shù)名拼寫錯(cuò)誤引起的。
      Cannot modify a constant object  不能修改一個(gè)常量對(duì)象; 對(duì)定義為常
量的對(duì)象進(jìn)行不合法操作(例如常量的賦值)將引起此錯(cuò)誤。
      Case outside of switch  case出現(xiàn)在switch外;通常由于大括號(hào)不配對(duì)引
起的。
      Case statement missing:  Case語句漏掉“:”;
      Case syntax error  case語法錯(cuò)誤;
      Character constant too long   字符常量太長;字符常量只能是一個(gè)或兩
個(gè)字符長。
      Compound statement missing}  復(fù)合語句漏掉};通常由于花括號(hào)不配對(duì)引
起的。
      Conflicting type modifiers  類型修飾符沖突;對(duì)同一指針只能指定一種
變址修飾符(如near或far);同樣對(duì)于同一函數(shù), 也只能給出一種語言修飾符(
如cdecl、pascal或interrupt)。
      Constant expression required  要求常量表達(dá)式;數(shù)組的大小必須是常量。
本錯(cuò)誤通常由于#define常量的拼寫錯(cuò)誤引起的。
      Could not find file‘xxx.xxx’  找不到‘xxx.xxx’文件; 編譯程序找
不到命令行上給出的文件。
      Declaration missing;  聲明漏掉分號(hào);在源文件中包含一個(gè)類型或存儲(chǔ)類
但后面漏掉了分號(hào)。
      Declaration needs type or storage class   聲明必須給出類型或存儲(chǔ)類;
如聲明“i,j;”是不正確的。
      Declaration syntax error  聲明出現(xiàn)語法錯(cuò)誤;在源文件中,某個(gè)聲明丟
失了某些符號(hào)或有多余的符號(hào)。
      Default outside of switch  Default在switch外出現(xiàn);通常是由于括號(hào)不
配對(duì)引起的。
      Define directive needs an identifier  Define 命令必須有一標(biāo)識(shí)符;
#define后面第一個(gè)非空格必須是一標(biāo)識(shí)符。
      Division by zero  除數(shù)為零;
      Do statement must have while  do語句中必須有while;
      Do-while statement missing(  do-while語句漏掉了“(”;
      Do-while statement missing)  do-while語句漏掉了“)”;
      Do-while statement missing;  do-while語句漏掉了分號(hào);
      Duplicate case  case的情況值不唯一;switch語句的每個(gè)case必須有一個(gè)
唯一的常量表達(dá)式。
      Enum syntax error  enum語法錯(cuò)誤;賦給enum 類型變量的表達(dá)式不為常量
產(chǎn)生本錯(cuò)誤。
      Error Directive:xxx  Error命令:xxx;處理源文件中的#error命令時(shí),
顯示該命令定義的信息。
      Error writing output file  寫輸出文件錯(cuò);通常是由磁盤空間引起的,
可刪除某些無用文件,重新編譯。
      Expression syntax  表達(dá)式語法錯(cuò);通常是由于兩個(gè)連續(xù)操作符、 括號(hào)不
配對(duì)或缺少括號(hào),以及前一語句漏掉了分號(hào)等引起的。
      Extra parameter in call   調(diào)用時(shí)出現(xiàn)多余參數(shù);調(diào)用函數(shù)時(shí),其實(shí)際參
數(shù)個(gè)數(shù)多余函數(shù)定義的參數(shù)個(gè)數(shù)。
      Extra parameter in call to xxx   調(diào)用xxx函數(shù)時(shí),出現(xiàn)了多余的參數(shù);
調(diào)用一個(gè)指定函數(shù)時(shí)(該函數(shù)由原型定義)出現(xiàn)了過多的參數(shù)。
      File name too long  文件名太長;#include命令給出的文件名太長,編譯
程序無法處理。DOS中的文件名不應(yīng)超過64個(gè)字符。
      For statement missing(  for語句漏掉“(”。
      For statement missing)  for語句漏掉“)”。
      For statement missing;  for語句漏掉“;”。
      Function call missing)  函數(shù)調(diào)用缺少“)”。
      Function definition out of place  函數(shù)定義位置錯(cuò);函數(shù)定義不可出現(xiàn)
在另一函數(shù)內(nèi),函數(shù)內(nèi)的任何聲明,只要以類似于帶有一個(gè)參數(shù)表的函數(shù)開始,就
被認(rèn)為是一個(gè)函數(shù)定義。
      Function doesn‘t take a variable of argument  函數(shù)不接受可變的參數(shù)
個(gè)數(shù);源文件中某個(gè)函數(shù)內(nèi)使用了va_start宏,此函數(shù)不能接受可變數(shù)量的參數(shù)。
      Goto statement missing label  goto語句缺少標(biāo)號(hào);在goto關(guān)鍵字后面必
須有一個(gè)標(biāo)號(hào)。
      If statement missing(  if語句缺少“(”。
      If statement missing)  if語句缺少“)”。
      Illegal character ‘c’(0xXX)  非法字符‘c’(0xXX);編譯程序發(fā)現(xiàn)
輸入文件中有一些非法字符,即以十六進(jìn)制形式打印的字符。
      Illegal initialization  非法初始化;初始化必須是常量表達(dá)式,或是一
個(gè)全局變量extern,或是static的地址加減一常量。
      Illegal octal digit  非法八進(jìn)制數(shù)。
      Illegal pointer subtraction  非法指針相減; 這是由于試圖以一個(gè)非指
針變量減去一個(gè)指針變量而造成的。
      Illegal structure operation  非法結(jié)構(gòu)操作;結(jié)構(gòu)只能使用(.)、取地
址(&)和賦值(=)操作符,或作為函數(shù)的參數(shù)傳遞。當(dāng)編譯程序發(fā)現(xiàn)結(jié)構(gòu)使用了
其它操作符時(shí),出現(xiàn)此錯(cuò)誤。
      Illegal use of floating point  非法浮點(diǎn)運(yùn)算; 浮點(diǎn)運(yùn)算分量不允許出
現(xiàn)在位移運(yùn)算符、按位邏輯運(yùn)算符、條件(? :)、間接(*)以及其它一些運(yùn)算符
中。編譯程序發(fā)現(xiàn)上述運(yùn)算符中使用了浮點(diǎn)運(yùn)算分量時(shí),出現(xiàn)此錯(cuò)誤。
      Illegal use of point  指針使用不合法;施于指針的運(yùn)算符只能是加、減、
賦值、比較、間接(*)或箭頭。如用其他運(yùn)算符,則出現(xiàn)此錯(cuò)誤。
      Improper use of a typedef symbol  typedef符號(hào)使用不當(dāng); 源文件中使
用了一個(gè)typedef符號(hào),符號(hào)變量應(yīng)出現(xiàn)在一個(gè)表達(dá)式中。 檢查一下此符號(hào)的說和
可能的拼寫錯(cuò)誤。
      In-line assembly not allowed  不允許直接插入的匯編語句;源文件中含
有直接插入的匯編語句,若在集成環(huán)境下進(jìn)行編譯,則出現(xiàn)此錯(cuò)誤。 必須使用TCC
命令行編譯此文件。
      Incompatible storage class  不相容的存儲(chǔ)類;源文件的一個(gè)函數(shù)定義中
使用了extern關(guān)鍵字,但只有static(或根本沒有存儲(chǔ)類型)
是允許的。
      Incompatible type conversion  不相容的類型轉(zhuǎn)換;例如:函數(shù)與非函數(shù)
間轉(zhuǎn)換,一種結(jié)構(gòu)體或數(shù)組與一種標(biāo)準(zhǔn)類型的轉(zhuǎn)換,浮點(diǎn)數(shù)與指針間轉(zhuǎn)換等。
      Incorrect command line argument:xxx  不正確的命令行參數(shù):xxx;編譯
程序視此命令行參數(shù)是非法的。
      Incorrect configuration file argument:xxx   不正確的配置文件參數(shù):
xxx;檢查一下前面的短橫線(-)。
      Incorrect number format  不正確的數(shù)據(jù)格式; 編譯程序發(fā)現(xiàn)在十六進(jìn)制
中出現(xiàn)十進(jìn)制小數(shù)點(diǎn)。
      Incorrect use of default  使用default時(shí)錯(cuò)誤;編譯程序發(fā)現(xiàn)default關(guān)
鍵字后缺少分號(hào)。
      Initialize syntax error  初始化語句產(chǎn)生錯(cuò)誤; 初始化過程缺少或多出
了運(yùn)算符,或出現(xiàn)括號(hào)不匹配及其它不正常情況。
      Invalid indirection   間接運(yùn)算符錯(cuò)誤; 間接運(yùn)算符(*)要求非空指針
作為運(yùn)算分量。
      Invalid macro argument separator  無效的宏參數(shù)分隔符;在宏定義中,
參數(shù)必須用逗號(hào)分隔。編譯程序發(fā)現(xiàn)參數(shù)名后面有其他非法字符時(shí),出現(xiàn)此錯(cuò)誤。
      Invalid pointer addition  無效的指針相加;源程序中試圖把兩個(gè)指針相
加。
      Invalid use of arrow  箭頭使用錯(cuò);箭頭運(yùn)算符后必須跟一個(gè)標(biāo)識(shí)符。
      Invalid use of dot  點(diǎn)使用錯(cuò);在點(diǎn)運(yùn)算符后必須跟一標(biāo)識(shí)符。
      Lvalue repuired  賦值請(qǐng)求;賦值運(yùn)算符的左邊必須是一個(gè)地址表達(dá)式,包
括數(shù)值變量、指針變量、結(jié)構(gòu)引用域、間接指針和數(shù)組分量。
      Macro argument syntax error  宏參數(shù)語法錯(cuò)誤; 宏定義中的參數(shù)必須是
一個(gè)標(biāo)識(shí)符。若編譯程序發(fā)現(xiàn)所需要的參數(shù)不是標(biāo)識(shí)符的字符,出現(xiàn)此錯(cuò)誤。
      Macro expansion too long  宏擴(kuò)展太長;一個(gè)宏擴(kuò)展不能多于4096個(gè)字符
當(dāng)宏遞歸擴(kuò)展自身時(shí),常出現(xiàn)此錯(cuò)誤。宏不能對(duì)自身進(jìn)行擴(kuò)展。
      May complied only one file when an file name is given   給出一個(gè)輸
出文件名時(shí),可能只編譯一個(gè)文件;在命令行編譯中使用-o選擇,只允許一個(gè)輸出
文件名。此時(shí),只編譯第一個(gè)文件,其他文件被忽略。
      Mismatch number of parameters in definition   函數(shù)多余中參數(shù)個(gè)數(shù)不
匹配;函數(shù)定義中的參數(shù)和函數(shù)原型中提供的信息不匹配。
      Misplaced break   break位置錯(cuò)誤;編譯程序發(fā)現(xiàn)break語句在switch語句
或循環(huán)結(jié)構(gòu)之外。
      Misplaced continue  continue語句位置錯(cuò)誤;編譯程序發(fā)現(xiàn)continue語句
在循環(huán)結(jié)構(gòu)之外。
      Misplaced decimal point  十進(jìn)制小數(shù)點(diǎn)位置錯(cuò); 編譯程序發(fā)現(xiàn)浮點(diǎn)常數(shù)
的指數(shù)部分有一個(gè)十進(jìn)制小數(shù)點(diǎn)。
      Misplaced else  else位置錯(cuò); 編譯程序發(fā)現(xiàn)else 語句缺少與之相匹配的
if語句此錯(cuò)誤的產(chǎn)生,除了由于else多余外,還有可能由于多余的分號(hào)或漏寫了大
括號(hào)及前面的if語句出現(xiàn)語法錯(cuò)誤引起的。
      Misplace elif directive  elif命令位置錯(cuò);編譯程序找不到與#elif相匹
配的#if、#ifdef或#ifndef命令。
      Misplace else directive  else命令位置錯(cuò);編譯程序找不到與#else命令
相匹配的#if、#ifdef或#ifndef命令。
      Misplace endif directive  endif命令位置錯(cuò);編譯程序找不到與endif相
匹配的#if、#ifdef或#ifndef命令。
      Must be addressable  必須是可編址的; 取址操作(& )作用于一個(gè)不可
編址的對(duì)象,如寄存器變量。
      Must take address of memory location   地址運(yùn)算符(&)不可編址的表
達(dá)式源文件中對(duì)不可編址的表達(dá)式使用了地址操作符,如對(duì)寄存器變量。
      No file name ending  無文件名終止符;在#include語句中, 文件名缺少
正確的畢引號(hào)(")或右尖括號(hào)(>)。
      No file name giver  未給出文件名;Turbo C編譯命令(tcc)中沒有包含
文件名。必須指定一個(gè)源文件名。
      Non-portable pointer assignment  不可移植指針賦值; 源程序中將一個(gè)
指針賦給一個(gè)非指針或相反。但作為特例,允許把常量零值賦給一個(gè)指針,如果合
適,應(yīng)該強(qiáng)行抑制此錯(cuò)誤信息。
      Non-portable pointer comparison  不可移植指針比較; 源程序中將一個(gè)
指針和一個(gè)非指針(常量零除外)進(jìn)行比較,如果合適,應(yīng)強(qiáng)行抑制此錯(cuò)誤信息。
      Non-portable pointer conversion  不可移植返回類型轉(zhuǎn)換; 在返回語句
中的表達(dá)式類型與函數(shù)說明中的類型不同,但如果函數(shù)的返回表達(dá)式是指針,則可
以進(jìn)行轉(zhuǎn)換。此時(shí),返回指針的函數(shù)可能送回一個(gè)常量零,而零被轉(zhuǎn)換成一個(gè)適當(dāng)
的指針值。
      Not an allowed type  不允許的類型;在源文件中聲明了幾種禁止的類型,
如聲明函數(shù)返回一個(gè)函數(shù)或數(shù)組。
      Out of memory  內(nèi)存不夠;所有工作內(nèi)存耗盡, 應(yīng)把文件放到一臺(tái)有較大
內(nèi)存的機(jī)器去執(zhí)行或簡化源程序。
      Pointer required on left side of ->  ->操作符左邊須是一個(gè)指針;在
->的左邊未出現(xiàn)指針。
      Redeclaration of“xxx”  “xxx”重定義;此標(biāo)識(shí)已經(jīng)定義過。
      Size of structure or array not known  結(jié)構(gòu)體或數(shù)組大小不確定;有些
表達(dá)式(如size of或存儲(chǔ)說明) 中出現(xiàn)一個(gè)未定義的結(jié)構(gòu)體或一個(gè)空長度數(shù)組。
若結(jié)構(gòu)長度不需要,則在定義之前就可引用;如果數(shù)組不申請(qǐng)存儲(chǔ)空間或者初始化
時(shí)給定了長度,那么就可以定義為空長。
      Statement missing;  語句缺少分號(hào);編譯程序發(fā)現(xiàn)一表達(dá)式語句后面沒有
分號(hào)。
      Structure of union syntax error  結(jié)構(gòu)體或共用(聯(lián)合)語法錯(cuò)誤; 編
譯程序發(fā)現(xiàn)在struct或union關(guān)鍵字后面沒有標(biāo)識(shí)符或左花括號(hào)({)。
      Structure size too large  結(jié)構(gòu)體太大;源文件中說明了一個(gè)結(jié)構(gòu)體,它
所需的內(nèi)存區(qū)域太大以致內(nèi)存不夠。
      Subscripting missing]  下標(biāo)缺少“]”;編譯程序發(fā)現(xiàn)一個(gè)下標(biāo)表達(dá)式缺
少閉方括號(hào)??赡苁怯捎诼┑?、多寫操作符或括號(hào)不匹配引起的。
      Switch statement missing(  語句缺少“(”; 在switch 語句中, 關(guān)鍵字
switch后面缺少左括號(hào)。
      Switch statement missing)  語句缺少“)”;在switch語句中, 測(cè)試表達(dá)
式后面缺少右括號(hào)。
      Too few parameters in call  函數(shù)調(diào)用參數(shù)太少;對(duì)帶有原形的函數(shù)調(diào)用
(通過一個(gè)函數(shù)指針)參數(shù)太少。原形要求給出所有參數(shù)。
      Too few parameter in call to‘xxx’  調(diào)用‘xxx’時(shí)參數(shù)太少;調(diào)用指
定的函數(shù)(該函數(shù)用一原形聲明)時(shí),給出的參數(shù)太少。
      Too many cases  case太多;switch語句最多只能有257個(gè)case。
      Too many decimal points  十進(jìn)制小數(shù)點(diǎn)太多; 編譯程序發(fā)現(xiàn)一個(gè)浮點(diǎn)常
量中帶有不止一個(gè)十進(jìn)制小數(shù)點(diǎn)。
      Too many default cases  default情況太多;編譯程序發(fā)現(xiàn)一個(gè)switch 語
句中有不止一個(gè)default語句。
      Too many exponents  階碼太多;編譯程序發(fā)現(xiàn)一個(gè)浮點(diǎn)常量中有不止一個(gè)
階碼。
      Too many initializers  初始化太多; 編譯程序發(fā)現(xiàn)初始化比聲明所允許
的要多。
      Too many storage classes in declaration  聲明中存儲(chǔ)類太多; 一個(gè)聲
明只允許有一種存儲(chǔ)類。
      Too many types in declaration  聲明中類型太多; 一個(gè)聲明只允許有一
種下列基本類型:char、float、int、double、struct、union、enum或typedef。
      Too much auto memory in function  函數(shù)中自動(dòng)存儲(chǔ)太多;當(dāng)函數(shù)聲明的
自動(dòng)存儲(chǔ)超過了可用的內(nèi)存空間。
      Too much code define in file  文件定義的代碼太多;當(dāng)前文件中函數(shù)的
總長度超過64K字節(jié)??梢砸迫ゲ槐匾拇a或把源文件分開來寫。
      Too much global data define in file  文件中定義的全局?jǐn)?shù)據(jù)太多; 全
局?jǐn)?shù)據(jù)聲明的總數(shù)超過64K字節(jié)。檢查一些數(shù)組的定義是否太長。 如果所有的聲明
都是必要的,考慮重新組織程序。
      Two consecutive dots  兩連續(xù)點(diǎn);因?yàn)槭÷蕴?hào)包含三個(gè)點(diǎn),而十進(jìn)制小數(shù)
點(diǎn)和選擇運(yùn)算符使用一個(gè)點(diǎn),所以在C程序中出現(xiàn)兩個(gè)連續(xù)點(diǎn)是不允許的。
      Type mismatch in parameter #  參數(shù)#類型不匹配;通過一個(gè)指針訪問已
由原形說明的參數(shù)時(shí),給定參數(shù)# N(從左到右N逐個(gè)加1)不能轉(zhuǎn)換為已聲明的
參數(shù)類型。
      Type mismatch in parameter # incall to‘xxx’ 調(diào)用‘xxx ’時(shí)參數(shù)類
型不匹配;源文件中通過一個(gè)原形說明了指定的函數(shù),而給定的參數(shù)(從左到右N
逐個(gè)加1)不能轉(zhuǎn)換為已說明的參數(shù)類型。
      Type mismatch in parameter‘xxx’  參數(shù)‘xxx’類型不匹配;源文件中
通過一個(gè)原形聲明了可由函數(shù)指針調(diào)用的函數(shù),而所指定的參數(shù)不能轉(zhuǎn)換為已聲明
的參數(shù)類型。
      Type mismatch in parameter‘xxx’in call to‘yyy’ 調(diào)用‘yyy’時(shí)參
數(shù)‘xxx’不匹配;源文件中通過一個(gè)原型聲明了指定的參數(shù),而指定的參數(shù)不能轉(zhuǎn)
換為另一個(gè)已聲明的參數(shù)類型。
      Type mismatch in redeclaration of‘xxx’  重定義類型不匹配;源文件
中把一個(gè)已經(jīng)聲明的變量重新聲明為另一類型。如果一個(gè)函數(shù)被調(diào)用,而后又被聲
明成非整形也會(huì)產(chǎn)生此錯(cuò)誤。發(fā)生這種情況時(shí),必須在第一次調(diào)用函數(shù)前給函數(shù)加
上extern聲明.
      Unable to create output file‘xxx.xxx’  不能創(chuàng)建輸出文件‘xxx. xx
x’;當(dāng)工作軟盤已滿或有寫保護(hù)時(shí)產(chǎn)生此錯(cuò)誤。如果軟盤已滿,則刪除一些不必要
的文件后重新編譯;如果軟盤有寫保護(hù),則把源文件移到一個(gè)可寫的軟盤上并重新
編譯。
      Unable to create turboc.lnk  不能創(chuàng)建turboc.lnk文件; 編譯程序不能
創(chuàng)建臨時(shí)文件TURBOC.LIN因?yàn)樗荒艽嫒〈疟P或者磁盤已滿。
      Unable to execute command‘xxx ’    不能執(zhí)行‘xxx ’命令; 找不到
TLINK或MASM,或者磁盤出錯(cuò)。
      Unable to open include file‘xxx.xxx’ 不能打開包含文件‘xxx.xxx’
編譯程序找不到該包含文件??赡苁怯捎谝粋€(gè)#clude文件包含其本身引起的,也可
能是根目錄下的CONFIG.SYS中沒設(shè)置能同時(shí)打開的文件個(gè)數(shù)(試加一句files=20)。
      Unable to open input file‘xxx.xxx’ 不能打開輸入文件‘xxx.xxx’;
當(dāng)編譯程序找不到源文件時(shí)出現(xiàn)此錯(cuò)誤。檢查文件名是否拼錯(cuò)或檢查對(duì)應(yīng)的軟盤或
目錄中是否有此文件。
      Undefined label‘xxx’ 標(biāo)號(hào)‘xxx’未定義;函數(shù)中g(shù)oto語句后的標(biāo)號(hào)沒
有定義。
      Undefined structure‘xxx’ 結(jié)構(gòu)體‘xxx’未定義;源文件中使用了未經(jīng)
說明的某個(gè)結(jié)構(gòu)體??赡苁怯捎诮Y(jié)構(gòu)體名拼寫錯(cuò)誤或缺少結(jié)構(gòu)體說明而引起的。
      Undefined symbol‘xxx’ 符號(hào)‘xxx’未定義;標(biāo)識(shí)符無定義, 可能是由
于說明或引用處有拼寫錯(cuò)誤,也可能是引用標(biāo)識(shí)符說明錯(cuò)誤引起。
      Unexpected end of file in comment started on line   源文件在某個(gè)注
釋中意外結(jié)束;通常是由于注釋結(jié)束標(biāo)志(*/)漏掉而引起的。
      Unexpected end of file in conditional stated on line #  源文件在#
行開始的條件語句中意外結(jié)束;在編譯程序遇到#endif前程序結(jié)束, 通常是由于
#endef漏掉或拼寫錯(cuò)誤引起的。
      Unknown preprocessor directive‘xxx’  不認(rèn)識(shí)的預(yù)處理命令‘xxx’;
編譯程序在某行開始遇到“#”字符,但其后的命令名不是下列之一:define 、
undef、line、if、ifdef、ifndef、include、else或dndif。
      Unterminated character constant 未終結(jié)的字符常量;編譯程序發(fā)現(xiàn)一個(gè)
不匹配的省略符。
      Unterminated string  未終結(jié)的串;編譯程序發(fā)現(xiàn)一個(gè)不匹配的引號(hào)。
      UNterminated string or character constant 未終結(jié)的串或字符常量;編
譯程序發(fā)現(xiàn)串或字符常量開始后沒有終結(jié)。
      User break  用戶中斷;在集成環(huán)境里編譯和連接時(shí)用戶按了Ctrl+Break。
      While statement missing(  While的表達(dá)式語句漏掉“(”;
      While statement missing)  While的表達(dá)式語句漏掉“)”;
      Wrong number of arguments in of‘xxx’ 調(diào)用‘xxx’時(shí)參數(shù)個(gè)數(shù)錯(cuò)誤;
源文件中調(diào)用某個(gè)宏時(shí),參數(shù)個(gè)數(shù)不對(duì)。
    3:警告:
      ‘xxx’declared but never used  聲明了‘xxx’但未使用; 在源文件中
說明了此變量,但沒有使用。當(dāng)編譯程序遇到復(fù)合語句或函數(shù)的結(jié)束處括號(hào)時(shí),發(fā)
出此警告。
      ‘xxx’is assigned a value which is never used  ‘xxx ’被賦以一個(gè)
不使用的值;此變量出現(xiàn)在一個(gè)賦值語句里,但直到函數(shù)結(jié)束都未使用過。當(dāng)編譯
程序遇到結(jié)束的閉花括號(hào)時(shí)發(fā)出此警告。
      ‘xxx’not part of structure ‘xxx’不是結(jié)構(gòu)體的一部分;出現(xiàn)在點(diǎn)或
箭頭的左邊的域名不是結(jié)構(gòu)體的一部分,或者點(diǎn)的左邊不是結(jié)構(gòu)體,箭頭左邊不指
向結(jié)構(gòu)。
      Ambiguous operators need parentheses  歧義運(yùn)算符需要括號(hào);當(dāng)兩個(gè)位
移、關(guān)系或按位操作符在一起使用而不加括號(hào)時(shí),發(fā)出此警告;當(dāng)一加法或一減法
操作符不加括號(hào)與一位移操作符出現(xiàn)在一起時(shí),也發(fā)出此警告。程序員常?;煜@
些操作符的優(yōu)先級(jí),因?yàn)樗鼈兊膬?yōu)先級(jí)不太直觀。
      Both return and return of a value used  即使用返回又使用返回值;編
譯程序發(fā)現(xiàn)一個(gè)與前面定義的return不一致的return語句,發(fā)出此警告。當(dāng)某函數(shù)
只在一些return語句中返回時(shí)一般會(huì)產(chǎn)生錯(cuò)誤。
      Call to function with prototype  調(diào)用無原型的函數(shù);如果“原型請(qǐng)求”
警告可用,且又調(diào)用了一個(gè)無原型的函數(shù),就發(fā)出此警告。
      Call to function‘xxx’with prototype  調(diào)用無原型的函數(shù)‘xxx’;如
果“原型請(qǐng)求”警告可用,且又調(diào)用了一個(gè)原先沒有原型的函數(shù),‘xxx’就發(fā)出此
警告。
      Code has no effect  代碼無效;當(dāng)編譯程序發(fā)現(xiàn)一個(gè)含有無效操作符的語
句時(shí),發(fā)出此警告。例如語句“a+b;”對(duì)每一個(gè)變量都不起作用,無需操作,且可
能引起一個(gè)錯(cuò)誤。
      Constant is long  常量是long類型;若編譯程序遇到一個(gè)十進(jìn)制常量大于
32767,或一個(gè)八進(jìn)制常量大于65535,而其后無字母“l”或“L”,把此常量當(dāng)做
long類型處理。
      Constant out of range in comparison  比較時(shí)常量超出了范圍; 在源文
件中有一比較語句,其中一個(gè)常量子表達(dá)式超出了另一個(gè)子表達(dá)式類型所允許的范
圍。如一個(gè)無符號(hào)量與-1比較就無意義。為得到一個(gè)大于32767 (十進(jìn)制)的無符
號(hào)常量,可以在常量前加上unsigned或在常量后加字母“u”或“U”。
      Conversion may lose significant digits  轉(zhuǎn)換可能丟掉高位數(shù)字;在賦
值操作或其它情況下,源程序要求把long或unsigned long型轉(zhuǎn)變成int或unsigned
 int型。在有些機(jī)器上,因?yàn)閕nt型和long型變量具有相同長度, 這種轉(zhuǎn)換可能改
變程序的輸出特性。無論此警告何時(shí)發(fā)生編譯程序仍將產(chǎn)生代碼來做比較。如果代
碼比較后總是給出同樣結(jié)果,比如一個(gè)字符表達(dá)式與4000比較,則代碼總要進(jìn)行測(cè)
試。這還表示一個(gè)無符號(hào)表達(dá)式可以與-1進(jìn)行比較,因?yàn)?087機(jī)器上,一個(gè)無符號(hào)
表達(dá)式與-1有相同的位模式。
      Function should return a value  函數(shù)應(yīng)該返回一個(gè)值;源文件聲明的當(dāng)
前函數(shù)的返回類型既非int型也非void型,但編譯程序未發(fā)現(xiàn)返回值。返回int的函
數(shù)可以不說明,因?yàn)樵诶习姹镜腃語言中,沒有void類型來指出函數(shù)不返回值。
      Mixing pointers to signed and unsigned char  混淆signed和unsigned
char指針;沒有通過顯示的強(qiáng)制類型轉(zhuǎn)換,就把一個(gè)字符指針轉(zhuǎn)換為無符號(hào)指針,
或把一個(gè)無符號(hào)指針轉(zhuǎn)變?yōu)樽址羔槨?br>      No decaration for function‘xxx’  函數(shù)‘xxx’沒有聲明;當(dāng)“聲明請(qǐng)
求”警告可用,而又調(diào)用了一個(gè)沒有預(yù)先聲明的函數(shù)時(shí),發(fā)出此警告。函數(shù)聲明可
以是傳統(tǒng)的,也可以是現(xiàn)代(原型)的風(fēng)格。
      Non-portable pointer assignment  不可移植指針賦值; 源文件中把一個(gè)
指針賦給另一個(gè)非指針或相反。作為特例,可以把常量0賦給一指針。如果合適,
可以強(qiáng)制抑制此警告。
      Non-portable pointer comparison  不可移植比較; 源文件中把一個(gè)指針
和另一非指針(非常量零)進(jìn)行比較。如果合適,可以強(qiáng)行抑制本警告。
      Non-portable return type conversion  不可移植返回類型轉(zhuǎn)換; return
語句中的表達(dá)式類型和函數(shù)聲明的類型不一致。作為特例,如果函數(shù)或返回表達(dá)式
是一個(gè)指針,這是可以的。在此情況下返回指針的函數(shù)可能返回一個(gè)常量零,而零
被轉(zhuǎn)換成一個(gè)適當(dāng)?shù)闹羔樦怠?br>      Parameter‘xxx’is never used  參數(shù)‘xxx’從未使用;函數(shù)說明中的某
函數(shù)在函數(shù)體里從未使用。這可以但不一定是一個(gè)錯(cuò)誤,通常是由于參數(shù)名拼寫錯(cuò)
誤引起的。如果在函數(shù)體內(nèi),該標(biāo)識(shí)符被重新定義為一個(gè)自動(dòng)(局部)變量,也將
產(chǎn)生本警告。此參數(shù)被標(biāo)識(shí)為一個(gè)自動(dòng)變量但未使用。
      Possible use of‘xxx’before definition  在定義‘xxx’之前
可能已使用此條件。如果改變量出現(xiàn)的物理位置在對(duì)它賦值之前,就會(huì)產(chǎn)生本警告
,當(dāng)然程序的實(shí)際流程可能在使用前已賦值。
      Possible incorrect assignment   可能的不正確賦值;當(dāng)編譯程序遇到賦
值操作符作為條件表達(dá)式(如if,while或do-while語句的一部分)的主操作符時(shí),
發(fā)生本警告,通常是由于把賦值號(hào)當(dāng)做等號(hào)使用了。若希望禁止此警告,則可把賦
值語句用括號(hào)括起來,并把它與零作顯式比較。如:if(a=b)應(yīng)寫作if(a=b)!=0。
      Redefinition of‘xxx’is not identical ‘xxx’的重定義不相同;源文
件對(duì)命名宏重定義時(shí),使用的正文內(nèi)容與第一次定義時(shí)不同,新內(nèi)容將代替舊內(nèi)容。
      Restarting compiler using assembly  用匯編重新啟動(dòng)編譯;編譯程序遇
到一個(gè)未使用命令行選擇項(xiàng)-B或#pragma inline語句的asm,通過時(shí)用匯編重新啟
動(dòng)編譯。
      Structure passed by value 結(jié)構(gòu)按值傳達(dá);如果“結(jié)構(gòu)按值傳達(dá)”警告可
用,則在結(jié)構(gòu)作為參數(shù)按值傳達(dá)時(shí)產(chǎn)生本警告。通常是在編制程序時(shí),把結(jié)構(gòu)體作
為參數(shù)傳遞,而又漏掉了地址操作符(&)。 因?yàn)榻Y(jié)構(gòu)體可以按值傳達(dá),所以這種
遺漏是可以接收的。本警告只起到一個(gè)提示作用。
      Superfluous & with function or array   在函數(shù)或數(shù)組中有多余的“&”
號(hào);取址操作符(&)對(duì)一個(gè)數(shù)組或函數(shù)名是不必要的,應(yīng)該去掉。
      Suspicious pointer conversion  可疑的指針轉(zhuǎn)換; 編譯程序遇到一些指
針轉(zhuǎn)換,這些轉(zhuǎn)換引起指針指向不同的類型。如果合適,應(yīng)強(qiáng)行抑制此警告。
      Undefined structure‘xxx’  結(jié)構(gòu)體‘xxx’未定義; 在源文件中使用了
該結(jié)構(gòu),但未定義。可能是由于結(jié)構(gòu)體名拼寫錯(cuò)誤或忘記定義而引起的。
      Unknown assembler instruction  不認(rèn)識(shí)的匯編命令; 編譯程序發(fā)現(xiàn)在插
入的匯編語句中有一個(gè)不允許的操作碼。檢查此操作的拼寫,并查看一下操作碼表
看該命令能否被接受。
      Unreachable code  不可達(dá)代碼; break、continue、goto或return語句后
沒有跟標(biāo)號(hào)或循環(huán)函數(shù)的結(jié)束符。編譯程序使用一個(gè)常量測(cè)試條件來檢查while、do
和for循環(huán),并試圖知道循環(huán)沒有失敗。
      Void function may not return a value  void函數(shù)不可以返回值;源文件
中的當(dāng)前函數(shù)說明為void,但編譯程序發(fā)現(xiàn)一個(gè)帶值的返回語句,該返回語句的值
將被忽略。
      Zero length structure  結(jié)構(gòu)長度為零; 在源文件中定義了一個(gè)總長度為
零的結(jié)構(gòu),對(duì)此結(jié)構(gòu)的任何使用都是錯(cuò)誤的。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    亚洲天堂国产精品久久精品| 深夜日本福利在线观看| 亚洲中文字幕在线综合视频| 日韩人妻欧美一区二区久久| 久久re6热在线视频| 婷婷亚洲综合五月天麻豆| 欧美中文字幕日韩精品| 日本婷婷色大香蕉视频在线观看| 国产欧美一区二区久久| 欧美熟妇一区二区在线| 国产福利一区二区久久| 久久夜色精品国产高清不卡| 国产欧美一区二区久久 | 日本不卡在线视频中文国产| 中文字幕日韩精品人一妻| 91麻豆视频国产一区二区| 免费一级欧美大片免费看| 精品人妻一区二区三区四区久久| 成人精品亚洲欧美日韩| 欧美激情中文字幕综合八区| 激情内射亚洲一区二区三区| 91精品国产综合久久不卡| 亚洲中文字幕视频一区二区 | 免费午夜福利不卡片在线 视频| 免费在线播放一区二区| 精品少妇人妻av一区二区蜜桃| 日韩特级黄片免费观看| 欧美自拍偷自拍亚洲精品| 色哟哟国产精品免费视频| 欧美精品亚洲精品一区| 草草夜色精品国产噜噜竹菊| 日韩成人免费性生活视频| 99久久精品视频一区二区| 五月天丁香亚洲综合网| 日韩欧美国产精品中文字幕| 日本一品道在线免费观看| a久久天堂国产毛片精品| 黑丝国产精品一区二区| 欧美黑人精品一区二区在线| 日韩精品一区二区三区四区| 国产精品免费视频视频|