<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 【經(jīng)驗(yàn)筆記】IAR常見錯(cuò)誤及警告信息表

          【經(jīng)驗(yàn)筆記】IAR常見錯(cuò)誤及警告信息表

          作者: 時(shí)間:2012-11-02 來源:網(wǎng)絡(luò) 收藏

          用慣了覺著它真的灰常強(qiáng)大(雖然UI界面有點(diǎn)簡(jiǎn)單,沒有Keil和Eclipse做的那么炫),隨著使用的時(shí)間越來越長(zhǎng),不斷有新的技巧和功能被發(fā)掘,第一是不斷給俺帶來驚喜,第二是成就感自我感覺良好,第三也是最重要的就是功能的強(qiáng)大極大程度上方便了我們的產(chǎn)品開發(fā),所以如此“賢內(nèi)助”我們?cè)趺瓷岬镁芙^呢(這回輪到給做廣告了),哈哈~

          本文引用地址:http://www.ex-cimer.com/article/148280.htm

          不過令我們頭疼的是當(dāng)編譯程序時(shí)出現(xiàn)的一大堆,雖然大多數(shù)問題好解決,不過也有一些或者讓我們抓耳撓腮無所適從。所以這里我就列出IAR一些所代表的意思及相應(yīng)的處理方法,希望能對(duì)正在使用IAR的同志們有所幫助。另外本表主要是我在逛阿莫論壇時(shí)看到的,也沒有原作者相應(yīng)的信息,所以無法在這里感謝了,也因此我以“”的形式寫出來(當(dāng)然也有自己的一些批注)。下面我挑了一些重點(diǎn)的列出來并加以注釋,具體原版信息表見文章最后的附件:

          一、警告信息表:

          1.Macro name redefine(宏被重新定義)

          表示用#define定義的宏在程序中以不同形式的參數(shù)或者形式重新定義了。

          2.undeclared function parameter name; assumed int(為聲明的函數(shù)參數(shù)“name”,假設(shè)為“int”型)

          缺省情況下,函數(shù)定義頭部中未聲明的標(biāo)識(shí)符默認(rèn)為“int”型。

          3.unreferenced label name(未引用的標(biāo)號(hào)“name”)

          這個(gè)貌似最常遇到的警告之一了,常常我們定義了某個(gè)變量,但在程序中卻沒有使用它。

          4.unreachable returns, the function will never return.(不能到達(dá)的返回,即執(zhí)行不到RET指令,函數(shù)不能返回)

          函數(shù)永遠(yuǎn)不能返回到調(diào)用的函數(shù)中,這可能是程序設(shè)計(jì)的bug造成的。當(dāng)然如果是RTOS的話,這點(diǎn)是正常的,無需考慮,因?yàn)椴僮飨到y(tǒng)每一個(gè)任務(wù)就是無限循環(huán)。

          5.Floating point constant out of range.(浮點(diǎn)常數(shù)超出范圍)

          浮點(diǎn)值太大或者太小以致于不能使用目標(biāo)的浮點(diǎn)系統(tǒng)來表示。

          ... ...

          二、錯(cuò)誤信息表:

          1.Invalid syntax(無效的語法)

          系統(tǒng)編譯器不能識(shí)別的語法,語句不符合標(biāo)準(zhǔn)。

          2.Failed to open #include file name(打開頭文件失?。?/p>

          這也是比較的錯(cuò)誤,編譯器在編譯程序的時(shí)候找不到文件里包含的頭文件,可能頭文件不存在或者路徑不對(duì)等等。

          3.member name of struct or union redeclared(結(jié)構(gòu)體或者聯(lián)合體成員變量被重新聲明)

          這個(gè)錯(cuò)誤也是比較常犯的,因忘記了在結(jié)構(gòu)體后者聯(lián)合體中已經(jīng)定義的變量,而在程序主體之中又重新定義或者聲明了這個(gè)變量。

          4.‘; ’ expected(忘記語句結(jié)束符'; ')

          這個(gè)貌似是最的錯(cuò)誤了吧,估計(jì)好多新手都犯過這個(gè)錯(cuò)誤,養(yǎng)成一個(gè)語句結(jié)尾都要加‘; '的好習(xí)慣是你從菜鳥邁向大牛很重要的一步。

          5.“else” without preceding “if”(“else”沒有前導(dǎo)的“if”)

          過多或者雜亂的使用if...else嵌套容易造成此類錯(cuò)誤,常常丟三落四,所以養(yǎng)成好的編程風(fēng)格和習(xí)慣可以避免此類錯(cuò)誤。

          ... ...

          錯(cuò)誤和警告的類型很多很多,我這里列出來的只是冰山之一角了

          51單片機(jī)相關(guān)文章:51單片機(jī)教程




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();