eclipse中的“没有效果的声明”错误

时间:2013-01-08 15:41:36

标签: c eclipse

我有这行代码,

newCust.idNumber == ID;

ID的值是string类型,已经分配了,newCust是我的struct的名称,idNumber是我的struct中的一个字符串,我想将ID的值赋给struct的ID号,任何idead为什么这行代码请求“无效的声明”。我正在使用eclipse,而且我是C编程的初学者

3 个答案:

答案 0 :(得分:3)

这是因为==比较了两个值,并丢弃了该比较的结果。虽然像这样的表达式语句在C中是完全合法的,但它们非常不寻常,并且通常用作指示您输入错误的内容。这就是编译器警告你的原因。

修改

  

我尝试了=也,然后我收到此错误,从类型char[60]

分配到类型char *时出现不兼容的类型

您无法分配这样的字符串:您需要使用strcpy,如下所示:

strcpy(newCust.idNumber, ID);

确保newCust.idNumber足够长,以使ID与其空终结符一致,即假定newCust.idNumberchar[60],{{1}的值必须是59个字符或更少。

答案 1 :(得分:1)

因为您正在进行比较并丢弃结果。你可能想要

newCust.idNumber = ID;

注意单个等号。

答案 2 :(得分:1)

==检查是否相等,它不是赋值运算符。

由于您没有检查支票的退货代码,Eclipse(正确地)会对您大喊大叫。