警告:逗号表达式的右侧操作数在C中没有效果[-Wunused-value]

时间:2018-01-08 13:46:19

标签: c gcc comma-operator

gcc正在抛出警告:

日志: - 警告:逗号表达式的右侧操作数无效[-Wunused-value]        for(i = 4,data; i

仅供参考,数据属于int类型,我们传递给具有此forloop的函数

我尝试使用运行正常的示例c代码进行本地测试。不知道我的原始代码需要更改什么。

#include <stdio.h>
int main (){
int i;
int data;
for (i=4, data; i<10; ++i){
printf("i valuse is %d", i);
}

我知道“,”将从左到右评估表达式,它将检查最后评估的表达式并相应地继续。 O / P: - 我认为是4 我认为是5 我认为是6 我认为是7 我认为是8 我认为是9

2 个答案:

答案 0 :(得分:1)

事实上,它的包容性确实非常有害。

data是一个值为data表达式,因为它是利用表达式分隔符运算符,该外表达式的值为{{1}}。严格来说,它的存在意味着程序的行为未定义,因为它至少没有初始化和概念上,编译器可以自由地生成读取值的代码。

由于它没有任何有用的效果,所以你的有用的编译器会告诉你,你应该删除它。

答案 1 :(得分:1)

  

逗号表达式的右侧操作数无效

警告很清楚。逗号运算符的出现位于

git diff/status

变量 for (i=10, data; i<10; ++i) ^^^^^^ 未使用,即使您从&#34;表达式&#34; data循环的一部分。最好的办法是完全摆脱它。