warning: #550-D: variable "key" was set but never used
程序如下:
#include "spi.h"
int main(void)
{
u8 key=0;
extern delay_init(); //延时函数初始化
SPI2_Init( );
SPI2_SetSpeed(2);
key = SPI2_ReadWriteByte(0x00);
}
一编译就说KEY声明了没有使用……
分析如下:
定义了变量key
使用key的代码为:key = SPI2_ReadWriteByte(0x00);
执行函数并将函数返回值赋值给key,然后没有使用这个返回值
编译器对于这种情况会做优化,编译器会分析出函数的返回值没有被使用,因此给key赋值会被编译器省略掉,于是只剩下定义变量key,并没有使用key(使用key的那句赋值步骤被编译器优化掉了)
解决办法:在定义的变量前加 volatile