打印
[应用相关]

转:keil MDK编译器警告和错误详解 .

[复制链接]
1249|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangfeng33|  楼主 | 2014-11-19 14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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”,而这个头文件中声明了全部的外部函数

沙发
mmuuss586| | 2014-11-19 21:21 | 只看该作者

谢谢楼主分享;

使用特权

评论回复
板凳
小班儿| | 2014-11-20 09:13 | 只看该作者
:handshake

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

506

主题

2446

帖子

8

粉丝