在C程序中,收到警告:“在;“无效力声明”;

在C程序中,收到警告:“在;“无效力声明”;,c,for-loop,segmentation-fault,gcc-warning,C,For Loop,Segmentation Fault,Gcc Warning,当我试图用-Wall编译特定程序时,GCC会显示以下警告: expcal.c:66:5: warning: statement with no effect [-Wunused-value] 此警告是指以下行: ed.operator[j] == str[i]; 可在以下循环中找到: for(i=0;i<strlen(str);i++) { j=0; if(str[i] == '+' || str[i] =

当我试图用
-Wall
编译特定程序时,GCC会显示以下警告:

expcal.c:66:5: warning: statement with no effect [-Wunused-value]
此警告是指以下行:

ed.operator[j] == str[i];
可在以下循环中找到:

for(i=0;i<strlen(str);i++)
        {
                j=0;
                if(str[i] == '+' || str[i] == '-' || str[i] == '*')
                {
                        if(str[i+1] == '+' || str[i+1] == '-' || str[i+1] == '*')
                                return 0;
                        else
                        {
                                //j=0;
                                ed.operator[j] == str[i];
                                count++;
                                j++;
                        }
                }
        }
用于(i=0;i语句

ed.operator[j] == str[i];
不是作业;它是使用
==
进行比较。若要将其作为作业,请尝试编写

ed.operator[j] = str[i];
您得到的警告意味着比较产生了一个从未使用过的值,因此该语句对程序没有任何可见的影响。这是一个提示,您可能希望将其重写为具有副作用的内容


希望这有帮助!

为什么要使用Wall++的示例