parameter "gpio" was set but never used

2019-08-18 20:39发布

1.#define PD0 PDout(0)


2.case 122:relay_control(500,PD0);break;


3.void relay_control(u16 delay,char gpio)
{
     
     gpio=1;
     delay_ms(delay);
     gpio=0;
     delay_ms(delay);

   
}

USER xt.c(22): warning:  #550-D: parameter "gpio" was set but never used
  void relay_control(u16 delay,char gpio)

红 {MOD}部分该怎么改?求大神指导

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
xxssl
1楼-- · 2019-08-18 20:58
本帖最后由 xxssl 于 2017-5-18 17:51 编辑

没有被使用,比如把gpio的值赋值给其他(temp=gpio)才算被使用了,gpio=1只是使用,没有被使用,有点绕  ,这个警告可以忽略
腺嘌呤
2楼-- · 2019-08-19 00:08
变量"gpio"定义了但是从未使用,或者是虽然你使用了但是编译器认为变量"gpio"所在的语句没有意义,编译器把他优化了。解决办法是在char gpio前面加volatile关键字,告诉编译器不要优化它。
lyl123
3楼-- · 2019-08-19 00:43
本帖最后由 lyl123 于 2017-5-19 08:49 编辑

gpio原意是指PD0的输出状态,但总感觉relay_control(u16 delay,char gpio)那个函数定义有问题,但不知道怎么去定义这个函数?
如果不用这个函数,那我只能在case语句后加case 122D0=1;delay_ms(500)D0=0;delay_ms(500);break;;
有没有简单的方法呢
hasaki
4楼-- · 2019-08-19 01:25
 精彩回答 2  元偷偷看……

一周热门 更多>