麻豆一区二区三区蜜桃免费_中文字幕Va一区二区三区 _国产成人综合久久二区_丰满多毛的大隂户毛茸茸_国产麻豆剧果冻传媒免费老狼_无码人妻精品一区二区三区久久久 _亚洲中文无码精品卡通_蜜臀亚洲AV永久无码精品老司机

MDK編譯器警告和錯(cuò)誤詳解
發(fā)布時(shí)間:2018-03-29

工作后從單片機(jī)轉(zhuǎn)成ARM,剛開(kāi)始用ADS1.2編譯器,用了一段時(shí)間,因?yàn)槲医邮值捻?xiàng)目的老程序正是用ADS編譯的,部門也大都在用.在學(xué)單片機(jī)的時(shí)候用的是keil.c51編譯器,ads和這個(gè)編譯器在易用性上真是無(wú)法比較.后來(lái)漸漸知道keil已經(jīng)被arm公司收購(gòu),現(xiàn)在keil.MDK成為了arm官方編譯器,所以決定重新投奔keil,利用平時(shí)的時(shí)間,將原程序重新用mdk編譯.小編在這里把平時(shí)遇到的編譯器給出的警告和錯(cuò)誤信息給出詳解,希望給初學(xué)者一點(diǎn)幫助。

 

 1.warning:  #550-D: variable "d" was set but never used

描述:變量'd'定義但從未使用,或者是,雖然這個(gè)變量你使用了,但編譯器認(rèn)為變量d所在的語(yǔ)句沒(méi)有意義,編譯器把它優(yōu)化了.

解決:仔細(xì)衡量所定義的變量d是否有用,若是認(rèn)定變量d所在語(yǔ)句有意義,那么嘗試用volatile關(guān)鍵字修飾變量d,若是真的沒(méi)有用,那么刪除掉以釋放可能的內(nèi)存.

 

2.warning:  #1-D: last line of file ends without a newline

描述:文件最后一行不是新的一行.編譯器要求程序文件的最后一行必須是空行,想了半天沒(méi)想通為什么要這樣.

解決:可以不理會(huì).若是覺(jué)得出現(xiàn)警告不爽,那么在出現(xiàn)警告的文件的最后一行敲個(gè)回車,空出一行.

 

3. warning:  #111-D: statement is unreachable

描述:聲明不可能到達(dá).多出現(xiàn)在這種場(chǎng)合:

解決:不理會(huì).

 

4. warning: C3017W: data may be used before being set

描述:變量'data'在使用前沒(méi)有明確的賦值

解決:應(yīng)仔細(xì)衡量該變量的初始值是否為0,若是,可以不理會(huì)這個(gè)警告,因?yàn)镸DK編譯器在程序執(zhí)行前,會(huì)將使用到的數(shù)據(jù)區(qū)初始化為0,但若是該變量的初始值不應(yīng)該是0,忽略這個(gè)警告可能會(huì)引起致命錯(cuò)誤.這個(gè)警告應(yīng)引起足夠重視.應(yīng)養(yǎng)成變量賦初值的習(xí)慣,好在有編譯器給把關(guān).

 

5. warning:  #177-D: variable "temp" was declared but never referenced

描述:變量'temp'進(jìn)行了聲明但沒(méi)有引用.多出現(xiàn)在聲明了一個(gè)變量,但卻沒(méi)有使用它,它和warning:  #550-D: variable "temp" was set but never used不同之處在于temp從沒(méi)有使用過(guò).

解決:若是定義的變量確實(shí)沒(méi)有用,刪除掉;若是有用,則在程序中使用.

與該警告類似的還有 warning:  #177-D: function "MACProcessBeacon" was declared but never referenced

 

6. warning:  #940-D: missing return statement at end of non-void function "DealwithInspect2"

描述:返回非空的函數(shù)"DealwithInspect2"的最后缺少返回值聲明.

 

7..warning:  #1295-D: Deprecated declaration lcd_init - give arg types

描述:在定義函數(shù)的時(shí)候,如果你寫上函數(shù)參數(shù),就會(huì)有這個(gè)警告,比如void timer_init(); 這里就沒(méi)有形參,如果這樣的話,編譯器會(huì)給出警告.