資源描述:
《Keil常見(jiàn)錯(cuò)誤警告.docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、1、warning:?#767-D:?conversionfrompointertosmallerinteger解釋:將指針轉(zhuǎn)換為較小的整數(shù)影響:可能造成的影響:容易引起數(shù)據(jù)截?cái)?,造成不必要的?shù)據(jù)丟失。如果出現(xiàn)bug,很難調(diào)試。改正:盡量避免這種轉(zhuǎn)換,避免不了要確定轉(zhuǎn)換的數(shù)據(jù)不會(huì)引起數(shù)據(jù)丟失。?2、?warning:?#177-D:variable"i"wasdeclaredbutneverreferenced解釋:變量i定義了,但是沒(méi)有使用影響:沒(méi)有使用的變量,很容易提高代碼出錯(cuò)的概率,還浪費(fèi)了一些??臻g。改正:對(duì)于這個(gè)警告,感覺(jué)應(yīng)該修改代碼直到?jīng)]有。確定每一個(gè)變量都用到了,沒(méi)有用到的注
2、釋掉,如果需要存在則在函數(shù)中調(diào)用下。?3、?warning:?#188-D:?enumeratedtypemixedwithanothertype解釋:枚舉類型混合了其他類型影響:如果值超過(guò)了枚舉類型的值,可能造成數(shù)據(jù)丟失。改正:盡量避免這樣的操作。?4、warning:?#223-D:?function"Set_RX8025_INT"declaredimplicitly解釋:Set_RX8025_INT函數(shù)使用前沒(méi)有顯示聲明。影響:具體影響不是很清楚。改正:在使用前顯示聲明下。?5、warning:C3017W:?imaybeusedbeforebeingset解釋:變量i或許在賦值前使
3、用影響:很有可能是漏掉了,某些情況,可能造成使用變量的隨機(jī)值。改正:在使用前將變量賦初值,對(duì)于這種警告,盡量消除。?6、warning:?#167-D:argumentoftype"uint8_t*"isincompatiblewithparameteroftype"constchar*restrict"解釋:uint8_t*類型的參數(shù)與constchar*restrict類型的參數(shù)不兼容。參數(shù)傳遞時(shí),不同類型的警告。影響:可能提高代碼的bug率。改正:首先避免這樣做,其次如果避不開(kāi)要詳細(xì)檢查傳入的參數(shù)。?7、warning:?#69-D:?integerconversionresulte
4、dintruncation解釋:整數(shù)轉(zhuǎn)換導(dǎo)致數(shù)據(jù)截?cái)嘤绊懀嚎赡茉斐蓴?shù)據(jù)丟失,出現(xiàn)錯(cuò)誤。改正:關(guān)于這種警告,應(yīng)該詳細(xì)考慮。確定轉(zhuǎn)換都在預(yù)期的結(jié)果內(nèi)。?8、warning:?#186-D:?pointlesscomparisonofunsignedintegerwithzero解釋:無(wú)符號(hào)整形和0的無(wú)意義比較影響:一個(gè)潛在的問(wèn)題,判斷無(wú)符號(hào)數(shù)大于等于0。由于無(wú)符號(hào)數(shù)沒(méi)有負(fù)數(shù),這種判斷恒為真。改正:詳細(xì)查看代碼的意圖,消除這樣的判斷。?9、warning:?#940-D:?missingreturnstatementatendofnon-voidfunction"fun1"解釋:非void型函數(shù)
5、缺失返回語(yǔ)句。有返回值的函數(shù),缺少了return語(yǔ)句。也有可能是在函數(shù)體中有但是最后一行沒(méi)有。影響:不是很了解。改正:在非void類型函數(shù)的最后一行添加return語(yǔ)句。?10、warning:?#111-D:?statementisunreachable解釋:語(yǔ)句執(zhí)行不到影響:由于前邊的代碼造成此段代碼,永遠(yuǎn)不會(huì)執(zhí)行到。改正:應(yīng)該查看此種警告,確定是我們需要的。并且盡量將此種警告消除。?11、warning:?#1-D:lastlineoffileendswithoutanewline解釋:文件最后一行缺少一新行。影響:避免當(dāng)被include的文件展開(kāi)時(shí),前一個(gè)文件的最后一行與后一個(gè)文件
6、的第一行直接連接成一行,造成錯(cuò)誤。改正:一般一個(gè).c.h文件,要在最后留一個(gè)空行。