Keil常見錯誤警告

2021-07-02 04:06:53 字數 2132 閱讀 7085

1、

warning:  #767-d: conversion from pointer 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: integer conversion resulted in truncation

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

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

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

8、warning:  #186-d: pointless comparison of unsigned integer with zero

解釋:無符號整形和0

的無意義比較

影響:乙個潛在的問題,判斷無符號數大於等於0

。由於無符號數沒有負數,這種判斷恒為真。

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

9、warning:  #940-d: missing return statement at end of non-void function "fun1"

解釋:非void

型函式缺失返回語句。有返回值的函式,缺少了

return

語句。也有可能是在函式體中有但是最後一行沒有。

影響:不是很了解。

改正:在非void

型別函式的最後一行新增

return

語句。

10、warning:  #111-d: statement is unreachable

解釋:語句執行不到

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

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

11、warning:  #1-d: last line of file ends without a newline

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

影響:避免當被include

的檔案展開時,前乙個檔案的最後一行與後乙個檔案的第一行直接連線成一行,造成錯誤。

改正:一般乙個.c .h

檔案,要在最後留乙個空行。

KEIL程式設計中常見的警告

keil程式設計中常見的警告 1 warning l16 uncalled segment,ignored for overlay process 這句話直譯就是 未呼叫段,忽略覆蓋過程 意思就是說 中有乙個函式,你定義了,卻沒有呼叫,圖示 裡沒有被呼叫的函式名字即第二行顯示的lcd dat 消除方...

KEIL常見編譯錯誤和警告解決方案彙總

本文主要彙總在使用keil的開發過程中,遇到的一些編譯錯誤和警告的處理方法,自己作為乙個記錄,同時分享給各位有緣人,希望有所幫助!謝謝 這個警告是因為將乙個無符號數與0作比較,比如uint32 t a if a 0 這種情況很明顯,無符號數當然大於或等於0,因此這個比較是毫無意義的,需根據實際情況作...

iOS開發 常見的錯誤與警告

1.error undeclared first use in this function 還沒有定義 在此函式中第一次使用 注 使用某乙個變數時,如果使用前還沒有定義,會出現該錯誤。在oc以及c語言中,使用變數前必須先定義它。這個錯誤經常出現在忘記進行變數定義的情況下。但是,慢慢拿習慣後,這種錯誤...