1.warning: #550-d: variable 'd' was set but never used
描述:變數'd'定義但從未使用,或者是,雖然這個變數你使用了,但編譯器認為變數d所在的語句沒有意義,編譯器把它優化了.
解決:仔細衡量所定義的變數d是否有用,若是認定變數d所在語句有意義,那麼嘗試用volatile關鍵字修飾變數d,若是真的沒有用,那麼刪除掉以釋放可能的記憶體.
2.warning: #1-d: last line of file ends without a newline
描述:檔案最後一行不是新的一行.編譯器要求程式檔案的最後一行必須是空行,想了半天沒想通為什麼要這樣.
解決:可以不理會.若是覺得出現警告不爽,那麼在出現警告的檔案的最後一行敲個回車,空出一行.
3. warning: #111-d: statement is unreachable
描述:宣告不可能到達.多出現在這種場合:
int main(void)
{...
while(1) //無限迴圈,這在不使用作業系統的程式中最常見
{4.line 10: warning: function declared implicitly
這是由於沒有宣告函式原型造成的。
在a.c中,
void main()
delay();
在b.c中
void delay()
如果就只是這樣的話,就會出現上面的worning的。
解決辦法是在b.h中寫 extern void delay();然後在a.c中include "b.h"就ok了。
再看程式,發現只包含了dsp281x_device.h,後來把dsp281x_examples.h新增進去就消除worning了。
dsp281x_examples.h中又include「dsp281x_globalprototypes.h」,而這個標頭檔案中宣告了全部的外部函式
keil MDK編譯器警告和錯誤詳解
1.warning 550 d variable d was set but never used 描述 變數 d 定義但從未使用,或者是,雖然這個變數你使用了,但編譯器認為變數d所在的語句沒有意義,編譯器把它優化了.解決 仔細衡量所定義的變數d是否有用,若是認定變數d所在語句有意義,那麼嘗試用vo...
編譯器警告和錯誤詳解
原文 1.warning 550 d variable d was set but never used 描述 變數 d 定義但從未使用,或者是,雖然這個變數你使用了,但編譯器認為變數d所在的語句沒有意義,編譯器把它優化了.解決 仔細衡量所定義的變數d是否有用,若是認定變數d所在語句有意義,那麼嘗試...
keil mdk編譯器學習筆記(1) 序
這兩天,學習了keil mdk編譯器的特性,這基本上獨立於c語言語法,平時基本上都在強調c語言的學習,但是編譯器的學習我們也要注重,類似於gcc一樣,不也有很多網上的資料,講述gcc的特性和用法嗎。作為嵌入式開發,keil mdk的特性也是要了解到,另外,iar編譯器也是有其特有的程式設計技巧的,因...