popo_new 发表于 2015-10-29 23:12:40

Keil 报 warning: #170-D,应该如何解决?


虽然是warning,但还是想知道一下原因,编译信息如下:

USER_Code\NVIC.c(136): warning:#170-D: pointer points outside of underlying object
      AI_val_Aver1= Aver_Adc(*AI_val_sort+400 ,100);

谢谢

596142041 发表于 2015-10-29 23:26:19

指针超出界限了

374184600 发表于 2015-10-30 00:04:07

pointer points outside of underlying object

cock 发表于 2015-10-30 04:54:05

AI_val_Aver1= Aver_Adc((*AI_val_sort)+400 ,100);
用这句试试,无上下文,不知是否与你的意图相左。

popo_new 发表于 2015-10-30 08:38:26

cock 发表于 2015-10-30 04:54
AI_val_Aver1= Aver_Adc((*AI_val_sort)+400 ,100);
用这句试试,无上下文,不知是否与你的意图相左。 ...

还是报同样的错误
USER_Code\NVIC.c(149): warning:#170-D: pointer points outside of underlying object
      AI_val_Aver1= Aver_Adc((*AI_val_sort)+400 ,100);

我的本意为,定义了一个二维数组:
uint32_t AI_val_sort,AI_val_Aver1;
AI_val_sort,希望保存8路ADC的值,数据存放在对应的AI_val_Aver1变量中。每路都报同样的warining. 但执行的结果都正确。

AI_val_Aver1= Aver_Adc((*AI_val_sort)+400 ,100);
这个函数的目的,就是求平均数。

//去掉10个极大极小值再平均,Num应大于20
uint32_tAver_Adc(uint32_t *Val_out,uint16_t Num)
{
        uint32_t i1,SumVal=0,AverVal;       
        for(i1=10;i1<Num-10;i1++)
        {
         SumVal =SumVal+Val_out;
        }       
        AverVal=SumVal/(Num-20);       
        return AverVal;

}


一杯茶2009 发表于 2016-4-22 16:06:29

解决了吗?我也遇到同样的问题
页: [1]
查看完整版本: Keil 报 warning: #170-D,应该如何解决?