添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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) //无限循环,这在不使用操作系统的程序中最常见
{

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”,而这个头文件中声明了全部的外部函数

1.warning:  #550-D: variable 'd' was set but never used描述:变量'd'定义但从未使用,或者是,虽然这个变量你使用了,但编译器认为变量d所在的语句没有意义,编译器把它优化了.解决:仔细衡量所定义的变量d是否有用,若是认定变量d所在语句有意义,那么尝试用volatile关键字修饰变量d,若是真的没有用,那么删除掉以释放可能的内存.2.
最新版本 MDK 没有预装ARM Compiler version5;而且使用ARM Compiler version6 编译器 出错的问题../CMSIS/CM3/core_cm3.c(445): error: non-ASM statement in naked function is not supported uint32_t result=0;
Keil 今天编译出现了如下图所示问题: 警告 一模一样,总共43个,最后找了大半天原因,问题出在**“Option——C/C++——Preprocessor Symbols——Define”**设置有问题。 我用的是STM32F407ZGT6核心板, 修改方法: Define中,改为**“STM32F40_41xxx,USE_STDPERIPH_DRIVER”千万注意,40_41xxx后边是个英语输入法下的逗号**, 改正以后 警告 消失,编译结果如下(忽略那个 错误 ,我还没找到 错误 原因):
1、 function "fabs" declared implicitly 说明调用fabs的这个文件中没有对fabs这个函数进行声明,因此在头文件中包含该函数的声明即可。即在头文件中添加# include "math.h"即可。 2、关于 编译器 优化 容易产生的不可思议的BUG,因此 编译器 不要轻易 优化 ,除非对 编译器 的工作原理很熟悉。现在说一下自己遇到的问题,一个简单的函数就是不正确执行,函数如下: