1. 程式人生 > >Keil軟體常見錯誤警告

Keil軟體常見錯誤警告

1、

warning:  #767-D: conversion frompointer to smaller integer

解釋:將指標轉換為較小的整數

影響:可能造成的影響:容易引起資料截斷,造成不必要的資料丟失。如果出現bug,很難除錯。

改正:儘量避免這種轉換,避免不了要確定轉換的資料不會引起資料丟失。

2、

 warning:  #177-D:variable"i" was declared but never referenced

解釋:變數i定義了,但是沒有使用

影響:沒有使用的變數,很容易提高程式碼出錯的概率,還浪費了一些棧空間。

改正:對於這個警告,感覺應該修改程式碼直到沒有。確定每一個變數都用到了,沒有用到的註釋掉,如果需要存在則在函式中呼叫下。

3、

 warning:  #188-D: enumerated type mixed with another type

解釋:列舉型別混合了其他型別

影響:如果值超過了列舉型別的值,可能造成資料丟失。

改正:儘量避免這樣的操作。

4、

warning:  #223-D: function"Set_RX8025_INT" declared implicitly

解釋:Set_RX8025_INT函式使用前沒有顯示宣告。

影響:具體影響不是很清楚。

改正:在使用前顯示宣告下。

5、

warning: C3017W: i may be used before being set

解釋:變數i或許在賦值前使用

影響:很有可能是漏掉了,某些情況,可能造成使用變數的隨機值。

改正:在使用前將變數賦初值,對於這種警告,儘量消除。

6、

warning:  #167-D:argument of type"uint8_t *" is incompatible with parameter of type "const char*restrict"

解釋:uint8_t *型別的引數與const char * restrict型別的引數不相容。引數傳遞時,不同型別的警告。

影響:可能提高程式碼的bug率。

改正:首先避免這樣做,其次如果避不開要詳細檢查傳入的引數。

7、

warning:  #69-D: integerconversion resulted in truncation

解釋:整數轉換導致資料截斷

影響:可能造成資料丟失,出現錯誤。

改正:關於這種警告,應該詳細考慮。確定轉換都在預期的結果內。

8

warning:  #186-D: pointlesscomparison of unsigned integer with zero

解釋:無符號整形和0的無意義比較

影響:一個潛在的問題,判斷無符號數大於等於0。由於無符號數沒有負數,這種判斷恆為真。

改正:詳細檢視程式碼的意圖,消除這樣的判斷。

9、

warning:  #940-D: missing returnstatement at end of non-void function "fun1"

解釋:非void型函式缺失返回語句。有返回值的函式,缺少了return語句。也有可能是在函式體中有但是最後一行沒有。

影響:不是很瞭解。

改正:在非void型別函式的最後一行新增return語句。

10、

warning:  #111-D: statement isunreachable

解釋:語句執行不到

影響:由於前邊的程式碼造成此段程式碼,永遠不會執行到。

改正:應該檢視此種警告,確定是我們需要的。並且儘量將此種警告消除。

11、

warning:  #1-D: last line of file endswithout a newline

解釋:檔案最後一行缺少一新行。

影響:避免當被include的檔案展開時,前一個檔案的最後一行與後一個檔案的第一行直接連線成一行,造成錯誤。

改正:一般一個.c .h檔案,要在最後留一個空行。