关于函数声明的问题,求教

2019-07-21 08:04发布

int main(void)
{
        u16 adcx;
        float temp;
        u16 t;  
        u16 len;       
        delay_init();                   
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        uart_init(115200);       
        LED_Init();                          
        Adc_Init();
        delay_ms(100);
        adcx=Get_Adc_Average(ADC_Channel_1,10);
        temp=(float)0.0008*adcx;
这种情况下为什么会警告: temp已声明,但是未使用,导致无法采集ADC数据

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
aozima
1楼-- · 2019-07-21 09:05
让我们猜猜你的警告是啥?

adcx=Get_Adc_Average(ADC_Channel_1,10);
这句必然会被执行,至少等号后面的会执行。

至于左边的,反正你后面程序没真正的使用,直接优化掉了。

adcx=
temp=(float)0.0008*adcx;

你把temp打印出来就行了。
ZCLOVEPF
2楼-- · 2019-07-21 11:14
aozima 发表于 2018-11-11 15:08
让我们猜猜你的警告是啥?

adcx=Get_Adc_Average(ADC_Channel_1,10);

adcx后面使用了啊    temp=(float)0.008*adcx;这不是使用了吗??还有,如果我把float temp放到main函数外面就没有警告了,一切正常
aozima
3楼-- · 2019-07-21 14:17
temp没有引用,那与他相关的内容自然也算没有引用。
aozima
4楼-- · 2019-07-21 14:36
如果放在函数外部,编译器就无法确定这个到底会不会有别人用,所以不敢去优化。
如果链接器支持二次优化,虽然这里不会有警告,但链接时还是帮你去掉这部分指令了。
把优化级别设为0就可以先调试了。

一周热门 更多>