KEIL常见编译错误和警告解决方案汇总
寫在開頭
本文主要匯總在使用KEIL的開發過程中,遇到的一些編譯錯誤和警告的處理方法,自己作為一個記錄,同時分享給各位有緣人,希望有所幫助!!謝謝~
正文
[ warning: #186-D: pointless comparison of unsigned integer with zero … ]
這個警告是因為將一個無符號數與0作比較,比如uint32_t a; if(a>=0)
這種情況很明顯,無符號數當然大于或等于0,因此這個比較是毫無意義的,需根據實際情況作修改
[ warning: #223-D: function “Set_RX8025_INT” declared implicitly ]
解釋:Set_RX8025_INT 函數使用前沒有顯示聲明。
改正:在使用前顯示聲明下。
[ warning: #177-D:variable “i” was declared but never referenced ]
解釋:變量 i 定義了,但是沒有使用
影響:沒有使用的變量,浪費了一些棧空間。
改正:對于這個警告, 感覺應該修改代碼直到沒有。確定每一個變量都用到了, 沒有用到的注釋掉,如果需要存在則在函數中調用下。
[ warning: #767-D: conversion from pointer to smaller integer ]
解釋:將指針轉換為較小的整數
影響:可能造成的影響:容易引起數據截斷,造成不必要的數據丟失。如果出現 bug,很難調試。
改正:盡量避免這種轉換,避免不了要確定轉換的數據不會引起數據丟失。
[ warning: #188-D: enumerated type mixed with another type ]
解釋:枚舉類型混合了其他類型
影響:如果值超過了枚舉類型的值,可能造成數據丟失。
改正:盡量避免這樣的操作。
[ warning: #111-D: statement is unreachable ]
解釋:語句執行不到
影響:由于前邊的代碼造成此段代碼,永遠不會執行到。比如while(1);后面的語句行。
改正:應該查看此種警告,確定是我們需要的。并且盡量將此種警告消除。
[ warning: #940-D: missing return statement at end of non-void function “fun1” ]
解釋:非 void 型函數缺失返回語句。有返回值的函數,缺少了 return 語句。也有可能是在函數體中有但是最后一行沒有。
影響:函數定義不規范,對該函數上層不友好。
改正:在非 void 類型函數的最后一行添加 return 語句。
[ warning: #69-D: integer conversion resulted in truncation ]
解釋:整數轉換導致數據截斷
影響:可能造成數據丟失,出現錯誤。
改正:關于這種警告,應該詳細考慮。確定轉換都在預期的結果內。
持續更新…
總結
以上是生活随笔為你收集整理的KEIL常见编译错误和警告解决方案汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FatFs源码剖析(2)
- 下一篇: STM32 调试脚上电默认电平