2013-11-28 42 views
0

我在编程初学者,所以我想一个简单的答案:)我怎样才能摆脱:警告:计算值不使用[-Wunused值]

我有一个用多回路条件,打印出两个数组。它的工作原理,但我得到一个警告和()下的一个红线。为什么是这样,我怎样才能避免它?我用C编写它,并在Ubuntu中使用Geany编译器。 :)

for((i=LEN-1) && (j=1); (i>=LEN-3) && (j<=PODIUM); i-- && j++) 
{  
    printf("%d. koht: %s tulemusega %f\n", j, voist[i], tul[i]);  
} 
+1

你需要将'(i = LEN-1)&&(j = 1)'改为'i = LEN-1,j = 1'并且'i-- && j ++'我 - ,j ++' – SHR

回答

0
for(i=LEN-1,j=1 ; (i>=LEN-3) && (j<=PODIUM); i--, j++) 

编辑: 它的工作原理,因为这是正确的语法。您不需要使用操作符来合并两个初始化或两个增量。你可以使用,

+0

此解决方案工作。但为什么它工作?你可以解释吗? :) – Jaan

+0

编译器将布尔结果存储在内部的某个临时变量中,这是从未使用过的。当我们删除第一个布尔条件时,它的最后一个参数解决了这个目的! – Srikanth

+0

在我的编辑中看到答案。 – SHR

0

该警告是因为(i=LEN-1) && (j=1)返回值是用于further.To避免警告机器人的,试试这个

int temp; 
... 

temp = (i=LEN-1) && (j=1); 

for(; (i>=LEN-3) && (j<=PODIUM); i-- && j++) 
{ 

    .... 

    temp = (i=LEN-1) && (j=1); 
} 
+0

不幸的是,只是增加了另一个警告:)变量温度设置,但没有使用。 – Jaan

+0

编辑我的答案。现在它将工作没有任何警告。 – haccks