2012-11-27 31 views
1
for (count = index, packet_no = 0; 
    count < TOTAL_OBJ, packet_no < TOTAL_PKT; 
    count++, packet_no++) 

=>逗号表达式的左侧操作数没有效果。逗号表达式的左侧操作数没有效果

我发现上面的代码是正确的,并不明白为什么会出现这个错误。

回答

12

这是逗号运算符是如何工作的,你想做的事就是用OR(可能和你的情况):

1

你在每一个有三个逗号运营商for声明的三个条款。警告是针对术语2的。

术语1和3的两个表达式均按预期执行。

术语2的左侧操作仅作为无效评估,不参与for条件,因此会导致您的警告。

1

条件语句(for,while或if)具有包含逗号运算符的条件表达式,last表达式的值是条件语句的条件值(True或False)。 例如。

int i = 1; 
int j = 0; 
int k = 1; 
if(i, j, k) { 
    printf("Inside"); 
}else { 
    printf("Outside"); 
} 

打印“外”为从左至右,k是如果返回虚假陈述评价中最后一个表达式逗号运算符评估。

int i, j; 
if(i = 0 , j = 1) { 
    printf("Inside"); 
}else { 
    printf("Outside"); 
} 

上面印有“Inside”。 j = 1是if语句中具有真值的最后一个表达式。

相关问题