keil MDK编译器警告和错误详解
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编译器警告和错误详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AIGC如此火爆,有何机会? 10位大咖
- 下一篇: STM32 (Cortex-M3) 中N