IAR variable l was set but never used 错误分析

Warning[Pe550]: variable "xxxx" was set but never used

如:

void fx (void)

{

UINT8 i;

i = p;

……………………

}

定义局部变量,就会报“变量定义了,但是没有使用”的警告!,,并且变量也没有被赋值。很容易迷惑人。不仔细看警告的朋友可能半天调试不好。

UINT8 i;

void fx (void)

{

i = p;

……………………

}

把变量改为全局变量后,就不会有警告了。

或者在定义的前面加上 volatile后,编译就通过了。这个和编译器的库有关。

UINT8 i;

void fx (void)

{

volatile UINT8i;

i = p;

……………………

}

我就是因为在中断里对串口接收进行处理,结果没法接收。

具体原因是不是因为这个变量引起的还在查找。

不知道为什么会这样。

#include "io430.h"

//带参数的宏定义

#define PI 3.14

#define S(r) PI*(r)*(r)

float area;//全局变量

void main()

{

int r;

r=3;

area = S(r);//调用宏

}

如果把该变量如下面程序中那样定义为局部变量,则会出现如下的提示:

同时程序也不能正常运行。

#include "io430.h"

//带参数的宏定义

#define PI 3.14

#define S(r) PI*(r)*(r)

void main()

{

int r;

float area;//局部变量

r=3;

area = S(r);//调用宏

}

//函数作为表达式调用

int GetMax(int x,int y);

int k;

int main( void )

{

// Stop watchdog timer to prevent time out reset

WDTCTL = WDTPW + WDTHOLD;

int m,n;

m=9;

n=10;

k = GetMax(m,n);//调用函数

}

int GetMax(int x,int y)

{

if(x>=y) return x;

else return y;

}

你并不一定会从此拥有更美好的人生,

IAR variable l was set but never used 错误分析

相关文章:

你感兴趣的文章:

标签云: