keil MDK编译器警告和错误详解
1.warning:? #550-D: variable 'd' was set but never used
描述:變量'd'定義但從未使用,或者是,雖然這個(gè)變量你使用了,但編譯器認(rèn)為變量d所在的語(yǔ)句沒有意義,編譯器把它優(yōu)化了.
解決:仔細(xì)衡量所定義的變量d是否有用,若是認(rèn)定變量d所在語(yǔ)句有意義,那么嘗試用volatile關(guān)鍵字修飾變量d,若是真的沒有用,那么刪除掉以釋放可能的內(nèi)存.
2.warning:? #1-D: last line of file ends without a newline
描述:文件最后一行不是新的一行.編譯器要求程序文件的最后一行必須是空行,想了半天沒想通為什么要這樣.
解決:可以不理會(huì).若是覺得出現(xiàn)警告不爽,那么在出現(xiàn)警告的文件的最后一行敲個(gè)回車,空出一行.
3. warning:? #111-D: statement is unreachable
描述:聲明不可能到達(dá).多出現(xiàn)在這種場(chǎng)合:
?int main(void)
?{
? ?...
??
??????? while(1)?//無限循環(huán),這在不使用操作系統(tǒng)的程序中最常見
?????? {
4.
line 10: warning: function declared implicitly
這是由于沒有聲明函數(shù)原型造成的。
在a.c中,
void main()
{
.....
delay();
....
}
在b.c中
void delay()
{
}
如果就只是這樣的話,就會(huì)出現(xiàn)上面的worning的。
解決辦法是在b.h中寫 extern void delay();然后在a.c中include "b.h"就ok了。
再看程序,發(fā)現(xiàn)只包含了DSP281x_Device.h,后來把DSP281x_Examples.h添加進(jìn)去就消除worning了。
DSP281x_Examples.h中又include“DSP281x_GlobalPrototypes.h”,而這個(gè)頭文件中聲明了全部的外部函數(shù)
???????????
總結(jié)
以上是生活随笔為你收集整理的keil MDK编译器警告和错误详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AIGC如此火爆,有何机会? 10位大咖
- 下一篇: STM32 (Cortex-M3) 中N