本文主要彙總在使用keil的開發過程中,遇到的一些編譯錯誤和警告的處理方法,自己作為乙個記錄,同時分享給各位有緣人,希望有所幫助!!謝謝~
這個警告是因為將乙個無符號數與0作比較,比如uint32_t a; if(a>=0)
這種情況很明顯,無符號數當然大於或等於0,因此這個比較是毫無意義的,需根據實際情況作修改
解釋:set_rx8025_int 函式使用前沒有顯示宣告。
改正:在使用前顯示宣告下。
解釋:變數 i 定義了,但是沒有使用
影響:沒有使用的變數,浪費了一些棧空間。
改正:對於這個警告, 感覺應該修改**直到沒有。確定每乙個變數都用到了, 沒有用到的注釋掉,如果需要存在則在函式中呼叫下。
解釋:將指標轉換為較小的整數
影響:可能造成的影響:容易引起資料截斷,造成不必要的資料丟失。如果出現 bug,很難除錯。
改正:盡量避免這種轉換,避免不了要確定轉換的資料不會引起資料丟失。
解釋:列舉型別混合了其他型別
影響:如果值超過了列舉型別的值,可能造成資料丟失。
改正:盡量避免這樣的操作。
解釋:語句執行不到
影響:由於前邊的**造成此段**,永遠不會執行到。比如while(1);後面的語句行。
改正:應該檢視此種警告,確定是我們需要的。並且盡量將此種警告消除。
解釋:非 void 型函式缺失返回語句。有返回值的函式,缺少了 return 語句。也有可能是在函式體中有但是最後一行沒有。
影響:函式定義不規範,對該函式上層不友好。
改正:在非 void 型別函式的最後一行新增 return 語句。
解釋:整數轉換導致資料截斷
影響:可能造成資料丟失,出現錯誤。
改正:關於這種警告,應該詳細考慮。確定轉換都在預期的結果內。
持續更新…
Keil常見錯誤警告
1 warning 767 d conversion from pointer to smaller integer 解釋 將指標轉換為較小的整數 影響 可能造成的影響 容易引起資料截斷,造成不必要的資料丟失。如果出現bug 很難除錯。改正 盡量避免這種轉換,避免不了要確定轉換的資料不會引起資料丟失...
常見gcc編譯錯誤
wtype limits 出現 if p null 情況本應該是if p null 但是編譯器只會給出警告,而不是直接報錯,可以採用if null p 避免 unsigned char i for i 0 i 255 i 大部分只會給出警告 wreorder 定義變數和初始化變數順序不一致 wign...
VC 常見編譯錯誤
fatal error c1010 unexpected end of file while looking for precompiled header directive。尋找預編譯標頭檔案路徑時遇到了不該遇到的檔案尾。一般是沒有 include stdafx.h fatal error c10...