C語(yǔ)言編程常見(jiàn)錯(cuò)誤和程序調(diào)試_第1頁(yè)
C語(yǔ)言編程常見(jiàn)錯(cuò)誤和程序調(diào)試_第2頁(yè)
C語(yǔ)言編程常見(jiàn)錯(cuò)誤和程序調(diào)試_第3頁(yè)
C語(yǔ)言編程常見(jiàn)錯(cuò)誤和程序調(diào)試_第4頁(yè)
C語(yǔ)言編程常見(jiàn)錯(cuò)誤和程序調(diào)試_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、15.1C語(yǔ)言編程常見(jiàn)錯(cuò)誤如果提示工具連接錯(cuò)誤,則表示KEIL安裝程序有問(wèn)題,重新卸載,并全部刪除后重新再進(jìn)行安裝后即可。15.2KEILC程序調(diào)試常見(jiàn)錯(cuò)誤Compling:C:8051MANN.CError:318:cantopenfilebeep.h說(shuō)明在編譯C:8051MANN.C程序過(guò)程中由于main.c用了指令#include“beep.h”,但卻找不到所致解決方法編寫一個(gè)beep.h的包含檔并存入到c:8051的工作目錄中Compling:C:8051LED.CError237:LedOn:functionalreadyhasabody說(shuō)明LedOn()函數(shù)名稱重復(fù)定義即有兩個(gè)以上

2、一樣的函數(shù)名稱解決方法修正其中的一個(gè)函數(shù)名稱使得函數(shù)名稱都是獨(dú)立的WARNING206:DelayX1ms:missingfunction-prototypeC:8051INPUT.CError267:DelayX1ms:requiresANSI-styleprototypeC:8051INPUT.C說(shuō)明程序中有調(diào)用DelayX1ms函數(shù)但該函數(shù)沒(méi)定義即未編寫程序內(nèi)容或函數(shù)已定義但未作聲明解決方法編寫DelayX1ms的內(nèi)容編寫完后也要作聲明或作外部聲明可在delay.h的包含檔聲明成外部以便其它函數(shù)調(diào)用*WARNING1:UNRESOLVEDEXTERNALSYMBOLSYMBOL:MUSI

3、C3MODULE:C:8051MUSIC.OBJ(MUSIC)*WARNING2:REFERENCEMADETOUNRESOLVEDEXTERNALSYMBOL:MUSIC3MODULE:C:8051MUSIC.OBJ(MUSIC)ADDRESS:0018H說(shuō)明程序中有調(diào)用MUSIC函數(shù)但未將該函數(shù)的含擴(kuò)檔C加入到工程檔Prj作編譯和連接解決方法設(shè)MUSIC3函數(shù)在MUSICC里將MUSICC添加到工程文件中去*ERROR107:ADDESSSPACEOVERFLOWSPACE:DATASEGMENT:_DATA_GOUP_LENGTH:0018H*ERROR118:REFERENCEMADE

4、TOERRONEOUSEXTERNALSYMBOL:VOLUMEMODULE:C:8051OSDM.OBJ(OSDM)ADDRESS:4036H說(shuō)明data存儲(chǔ)空間的地址范圍為00 x7f,當(dāng)公用變量數(shù)目和函數(shù)里的局部變量如果存儲(chǔ)模式設(shè)為SMALL則局部變量先使用工作寄存器R2R7作暫存當(dāng)存儲(chǔ)器不夠用時(shí)則會(huì)以data型別的空間作暫存的個(gè)數(shù)超過(guò)0 x7f時(shí)就會(huì)出現(xiàn)地址不夠的現(xiàn)象。解決方法將以data型別定義的公共變量修改為idata型別的定義15.3C編譯器錯(cuò)誤信息中文翻譯Ambiguousoperatorsneedparentheses不明確的運(yùn)算需要用括號(hào)括起Ambiguoussymbol、

5、xxx不明確的符號(hào)Argumentlistsyntaxerror參數(shù)表語(yǔ)法錯(cuò)誤Arrayboundsmissing丟失數(shù)組界限符Arraysizetoolarge數(shù)組尺寸太大Badcharacterinparamenters參數(shù)中有不適當(dāng)?shù)淖址鸅adfilenameformatinincludedirective包含命令中文件名格式不正確Badifdefdirectivesynatax編譯預(yù)處理ifdef有語(yǔ)法錯(cuò)Badundefdirectivesyntax編譯預(yù)處理undef有語(yǔ)法錯(cuò)Bitfieldtoolarge位字段太長(zhǎng)Callofnon-function調(diào)用未定義的函數(shù)Calltofu

6、nctionwithnoprototype調(diào)用函數(shù)時(shí)沒(méi)有函數(shù)的說(shuō)明Cannotmodifyaconstobject不允許修改常量對(duì)象Caseoutsideofswitch漏掉了case語(yǔ)句CasesyntaxerrorCase語(yǔ)法錯(cuò)誤Codehasnoeffect代碼不可述不可能執(zhí)行到Compoundstatementmissing分程序漏掉Conflictingtypemodifiers不明確的類型說(shuō)明符Constantexpressionrequired要求常量表達(dá)式Constantoutofrangeincomparison在比較中常量超出范圍Conversionmaylosesigni

7、ficantdigits轉(zhuǎn)換時(shí)會(huì)丟失意義的數(shù)字Conversionofnearpointernotallowed不允許轉(zhuǎn)換近指針Couldnotfindfile、xxx找不到XXX文件Declarationmissing;說(shuō)明缺少;Declarationsyntaxerror說(shuō)明中出現(xiàn)語(yǔ)法錯(cuò)誤DefaultoutsideofswitchDefault出現(xiàn)在switch語(yǔ)句之外DefinedirectiveneedsanIdentifier定義編譯預(yù)處理需要標(biāo)識(shí)符Divisionbyzero用零作除數(shù)DostatementmusthavewhileDo-while語(yǔ)句中缺少while部分Enum

8、syntaxerror枚舉類型語(yǔ)法錯(cuò)誤Enumerationconstantsyntaxerror枚舉常數(shù)語(yǔ)法錯(cuò)誤Errordirective:xxx錯(cuò)誤的編譯預(yù)處理命令Errorwritingoutputfile寫輸出文件錯(cuò)誤Expressionsyntaxerror表達(dá)式語(yǔ)法錯(cuò)誤Extraparameterincall調(diào)用時(shí)出現(xiàn)多余錯(cuò)誤Filenametoolong文件名太長(zhǎng)Functioncallmissing)函數(shù)調(diào)用缺少右括號(hào)Fuctiondefinitionoutofplace函數(shù)定義位置錯(cuò)誤Fuctionshouldreturnavalue函數(shù)必需返回一個(gè)值Gotostateme

9、ntmissinglabelGoto語(yǔ)句沒(méi)有標(biāo)號(hào)Hexadecimaloroctalconstanttoolarge16進(jìn)制或8進(jìn)制常數(shù)太大Illegalcharacterx非法字符xIllegalinitialization非法的初始化Illegaloctaldigit非法的8進(jìn)制數(shù)字Illegalpointersubtraction非法的指針相減Illegalstructureoperation非法的結(jié)構(gòu)體操作Illegaluseoffloatingpoint非法的浮點(diǎn)運(yùn)算Illegaluseofpointer指針使用非法Improperuseofatypedefsymbol類型定義符號(hào)使

10、用不恰當(dāng)In-lineassemblynotallowed不允許使用行間匯編Incompatiblestorageclass存儲(chǔ)類別不相容Incompatibletypeconversion不相容的類型轉(zhuǎn)換Incorrectnumberformat錯(cuò)誤的數(shù)據(jù)格式IncorrectuseofdefaultDefault使用不當(dāng)Invalidindirection無(wú)效的間接運(yùn)算Invalidpointeraddition指針相加無(wú)效Irreducibleexpressiontree無(wú)法執(zhí)行的表達(dá)式運(yùn)算Lvaluerequired需要邏輯值0或非0值Macroargumentsyntaxerror宏

11、參數(shù)語(yǔ)法錯(cuò)誤Macroexpansiontoolong宏的擴(kuò)展以后太長(zhǎng)Mismatchednumberofparametersindefinition定義中參數(shù)個(gè)數(shù)不匹配Misplacedbreak此處不應(yīng)出現(xiàn)break語(yǔ)句Misplacedcontinue此處不應(yīng)出現(xiàn)continue語(yǔ)句Misplaceddecimalpoint此處不應(yīng)出現(xiàn)小數(shù)點(diǎn)Misplacedelifdirective不應(yīng)編譯預(yù)處理elifMisplacedelse此處不應(yīng)出現(xiàn)elseMisplacedelsedirective此處不應(yīng)出現(xiàn)編譯預(yù)處理elseMisplacedendifdirective此處不應(yīng)出現(xiàn)編譯預(yù)

12、處理endifMustbeaddressable必須是可以編址的Musttakeaddressofmemorylocation必須存儲(chǔ)定位的地址Nodeclarationforfunction、xxx沒(méi)有函數(shù)xxx的說(shuō)明Nostack缺少堆棧Notypeinformation沒(méi)有類型信息Non-portablepointerassignment不可移動(dòng)的指針(地址常數(shù))賦值Non-portablepointercomparison不可移動(dòng)的指針(地址常數(shù))比較Non-portablepointerconversion不可移動(dòng)的指針(地址常數(shù))轉(zhuǎn)換Notavalidexpressionforma

13、ttype不合法的表達(dá)式格式Notanallowedtype不允許使用的類型Numericconstanttoolarge數(shù)值常太大Outofmemory內(nèi)存不夠用Parameterxxxisneverused能數(shù)XXX沒(méi)有用到Pointerrequiredonleftsideof-符號(hào)-的左邊必須是指針Possibleuseofxxxbeforedefinition在定義之前就使用了XXX(警告)Possiblyincorrectassignment賦值可能不正確Redeclarationofxxx重復(fù)定義了XXXRedefinitionofxxxisnotidenticalXXX的兩次定義

14、不一致Registerallocationfailure寄存器定址失敗Repeatcountneedsanlvalue重復(fù)計(jì)數(shù)需要邏輯值Sizeofstructureorarraynotknown結(jié)構(gòu)體或數(shù)給大小不確定Statementmissing;語(yǔ)句后缺少;Structureorunionsyntaxerror結(jié)構(gòu)體或聯(lián)合體語(yǔ)法錯(cuò)誤Structuresizetoolarge結(jié)構(gòu)體尺寸太大Subscriptingmissing下標(biāo)缺少右方括號(hào)Superfluous&withfunctionorarray函數(shù)或數(shù)組中有多余的&Suspiciouspointerconversion可疑的指針轉(zhuǎn)

15、換Symbollimitexceeded符號(hào)超限Toofewparametersincall函數(shù)調(diào)用時(shí)的實(shí)參少于函數(shù)的參數(shù)不ToomanydefaultcasesDefault太多(switch語(yǔ)句中一個(gè))Toomanyerrororwarningmessages錯(cuò)誤或警告信息太多Toomanytypeindeclaration說(shuō)明中類型太多Toomuchautomemoryinfunction函數(shù)用到的局部存儲(chǔ)太多Toomuchglobaldatadefinedinfile文件中全局?jǐn)?shù)據(jù)太多Twoconsecutivedots兩個(gè)連續(xù)的句點(diǎn)Typemismatchinparameterxxx

16、參數(shù)xxx類型不匹配Typemismatchinredeclarationof、XXXxxx重定義的類型不匹配Unabletocreateoutputfile、xxx無(wú)法建立輸出文件xxxUnabletoopenincludefilexxx無(wú)法打開(kāi)被包含的文件xxxUnabletoopeninputfilexxx無(wú)法打開(kāi)輸入文件xxxUndefinedlabelxxx沒(méi)有定義的標(biāo)號(hào)xxxUndefinedstructurexxx沒(méi)有定義的結(jié)構(gòu)xxxUndefinedsymbolxxx沒(méi)有定義的符號(hào)xxxUnexpectedendoffileincommentstartedonlinexxx從x

17、xx行開(kāi)始的注解尚未結(jié)束文件不能結(jié)束Unexpectedendoffileinconditionalstartedonlinexxx從xxx開(kāi)始的條件語(yǔ)句尚未結(jié)束文件不能結(jié)束Unknownassembleinstruction41.UnknownassembleinstructionUserbreak用戶強(qiáng)行中斷了程序VoidfunctionsmaynotreturnavalueVoid類型的函數(shù)不應(yīng)有返回值Wrongnumberofarguments調(diào)用函數(shù)的參數(shù)數(shù)目錯(cuò)xxxnotanargumentxxx不是參數(shù)xxxnotpartofstructurexxx不是結(jié)構(gòu)體的一部分xxxsta

18、tementmissing(xxx語(yǔ)句缺少左括號(hào)xxxstatementmissing)xxx語(yǔ)句缺少右括號(hào)xxxstatementmissing;xxx缺少分號(hào)xxxdeclaredbutneverused說(shuō)明了xxx但沒(méi)有使用xxxisassignedavaluewhichisneverused給xxx賦了值但未用過(guò)Zerolengthstructure結(jié)構(gòu)體的長(zhǎng)度為零未知的匯編結(jié)構(gòu)未知的匯編結(jié)構(gòu)42.未知的操作43.UnknownoptionUnknownpreprocessordirective:、xxx不認(rèn)識(shí)的預(yù)處理命令xxxUnreachablecode44.Unreachable

19、code無(wú)路可達(dá)的代碼45.constant字符串缺少引號(hào)Unterminatedstringorcharacter15.3KEILC常用警告原因及處理方法1.|二口田戸j丄日已丄呂-二conipillngkeyukey匚WS:warningC316:unterminatedconditionalslinking.ProgramSize:data=12.0 xdata=Ocode=544rr2358rr-0Ettoir(s)f2Wairning(s).原因:#ifndefkey_h#ifndefkey_hvoidkey(void);#endif應(yīng)該修改為:#ifndefkey_h/如果沒(méi)有定義

20、,那么#definekey_h/重新定義voidkey(void);#endif如果keil在編譯過(guò)程中經(jīng)常出現(xiàn)對(duì)話框提示要保存的話,解決方法:把該文件夾放入英文文件夾下面,并且該文件夾最好用英文,不能用:要把該文件夾只讀去掉。Warning280:i:unreferencedlocalvariable說(shuō)明局部變量i在函數(shù)中未作任何的存取操作解決方法消除函數(shù)中i變量的聲明Warning206:Music3:missingfunction-prototype說(shuō)明Music3()函數(shù)未作聲明或未作外部聲明所以無(wú)法給其他函數(shù)調(diào)用解決方法將敘述voidMusic3(void)寫在程序的最前端作聲明如果

21、是其他文件的函數(shù)則要寫成externvoidMusic3(void),即作外部聲明*WARNING16:UNCALLEDSEGMENT,IGNOREDFOROVERLAYPROCESSSEGMENT:?PR?_DELAYX1MS?DELAY說(shuō)明DelayX1ms()函數(shù)未被其它函數(shù)調(diào)用也會(huì)占用程序記憶體空間解決方法去掉DelayX1ms()函數(shù)或利用條件編譯#if.#endif,可保留該函數(shù)并不編譯*WARNING6:XDATASPACEMEMORYOVERLAPFROM:0025HTO:0025H說(shuō)明外部資料ROM的0025H重復(fù)定義地址解決方法外部資料ROM的定義如下Pdataunsign

22、edcharXFR_ADC_at_0 x25其中XFR_ADC變量的名稱為0 x25,請(qǐng)檢查是否有其它的變量名稱也是定義在0 x25處并修正它.*WARNINGL15:MULTIPLECALLTOSEGMENTSEGMENT:?PR?_WRITE_GMVLX1_REG?D_GMVLX1CALLER1:?PR?VSYNC_INTERRUPT?MAINCALLER2:?C_C51STARTUP*WARNINGL15:MULTIPLECALLTOSEGMENTSEGMENT:?PR?_SPI_SEND_WORD?D_SPICALLER1:?PR?VSYNC_INTERRUPT?MAINCALLER2

23、:?C_C51STARTUP*WARNINGL15:MULTIPLECALLTOSEGMENTSEGMENT:?PR?SPI_RECEIVE_WORD?D_SPICALLER1:?PR?VSYNC_INTERRUPT?MAINCALLER2:?C_C51STARTUP該警告表示連接器發(fā)現(xiàn)有一個(gè)函數(shù)可能會(huì)被主函數(shù)和一個(gè)中斷服務(wù)程序(或者調(diào)用中斷服務(wù)程序的函數(shù))同時(shí)調(diào)用,或者同時(shí)被多個(gè)中斷服務(wù)程序調(diào)用。出現(xiàn)這種問(wèn)題的原因之一:是這個(gè)函數(shù)是不可重入性函數(shù),當(dāng)該函數(shù)運(yùn)行時(shí)它可能會(huì)被一個(gè)中斷打斷,從而使得結(jié)果發(fā)生變化并可能會(huì)引起一些變量形式的沖突(即引起函數(shù)內(nèi)一些數(shù)據(jù)的丟失,可重入性函數(shù)在任何時(shí)候都可以被ISR打斷,一段時(shí)間后又可以運(yùn)行,但是相應(yīng)數(shù)據(jù)不會(huì)丟失)。原因之二:是用于局部變量和變量(暫且這樣翻譯arguments,自變量,變?cè)粩?shù)值,用于確定程序或子程序的值)的內(nèi)存區(qū)被其他函數(shù)的內(nèi)存區(qū)所覆蓋,如果該函數(shù)被中斷,則它的內(nèi)存區(qū)就會(huì)被使用,這將導(dǎo)致其他函數(shù)的內(nèi)存沖突。例如,第一個(gè)警告中函數(shù)WRITE_GMVLX1_REG在D_GMVLX1.C或者D_GMVLX1.A51被定義,它被一個(gè)中斷服務(wù)程序或者一個(gè)調(diào)用了中斷服務(wù)程序的函數(shù)調(diào)用了,調(diào)用它的函數(shù)是VSYNC_INTERRUPT,在MAIN.C中。解決方法:如果你確定兩個(gè)函數(shù)決不會(huì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論